{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4f28141b",
   "metadata": {},
   "source": [
    "# Root Cause Analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c683bd1b",
   "metadata": {},
   "source": [
    "In this notebook, we will explain how to use PyRCA for root cause analysis."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3afe6a03",
   "metadata": {},
   "source": [
    "We first load the data which includes both dataset and meta information"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b5406699",
   "metadata": {},
   "outputs": [],
   "source": [
    "import dill as pkl\n",
    "\n",
    "# load data and meta configuration\n",
    "with open(\"../tests/data/synthetic0.pkl\", \"rb\") as input_file:\n",
    "    data = pkl.load(input_file)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12409178",
   "metadata": {},
   "source": [
    "We plot the causal graph, and label the root causes nodes. In the graph, X1 is the Service Level Indicator (SLI), where we have observed the anomaly taking place."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "360ddf57",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The generated graph: True is directed and acyclic.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1gUVxcG8He20DsoYMXeK4Jd1KixF9TYa4w1lhg1dixRP42J3RgTS4xGYzd2jb333mMv2FBRQNrO+/0xQkDaLruwgPf3PPsgU+6cQWAPd+49VyJJCIIgCIIgCEIqqcwdgCAIgiAIgpC5iYRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIpIKAVBEARBEASjiIRSEARBEARBMIrG3AEIgmBasgyEhgI6HWBrC2i15o5IEARByOpED6UgZAE3bwIjRwLVqwMODsrL2RmwsgKKFQO6dwe2blWSTEEQBEEwNYkkzR2EIAipc+UKMHAgsGcPoNEA0dGJHxezL3duYPx4oGtXQJLSNVRBEAQhCxMJpSBkQrIMTJsGjBkDkIb3PNarByxZAuTIkTbxCYIgCJ8WkVAKQiaj0yk9jMuXp74NjQZwdwcOHgTy5zdZaIIgCMInSiSUgpDJ9O0LLFig9EwaQ6MBPD2Bs2cBNzfTxJbVkcCjR8rX7OVL5XNXV6BcOSBvXjGMQBCET5dIKAUhE9m8GWja1HTtqdVAy5bAX3+Zrs2s6M4d4JdflGECL14kfoyzM9ClC9CnD1C4cPrGJwiCYG5ilrcgZBLv3gFffgmoVADQEYAVgJuJHPk/ABKALR8+/+vD8YU+bK8Ze6ROB6xeDWzalHZxZ2YhIcDXXwMFCwI//ph0MgkAr18Dc+cCRYoos+qDg9MvTkEQBHMTPZSCkEnMmwf07x/zqPs5gKIAygLYG+eouwBKAGgIYO2HbTUBnAHgA+A8gNIA9seeoVIB3t7AyZNpGX3mc+GC0hv86JEyCcoQajWQLRuwcSNQsWKahCcIgpChiIRSEDIBUqknefNm3LGTvwLoCWApgC4ftjUAcBTAVQA5P2x7+OHfKgAlAbghbkIZ48wZoHz5tIk/szl7FvDzA96/T33tTpUKsLAAdu8GqlUzbXyCIAgZjXjkLQiZwL17wI0bH0/E6QGgKoAhAIIArAKwA8D3+C+ZBIDcSOlHXa1WCp8LwPPnQN26xiWTgNKrGRkJNGgAPHhguvgEQRAyIpFQCkImcOZMYlslAL8ACAbQB8A3ACoA6Gdw+yRw+nTC7UFBQfjf//6HZs2aITw83OB2MxsS6N1bGf+o0xkyTtXrw+fxX7LcG+HhyphK8SxIEISsTKzlLQiZwNWrSa2EUwJKD+UUAGoAW5GavxNlWRkzGOPKlSuYNWsWli1bhoiICADA69ev4enpmar4M4udO4ENG2I++wnANgC9kXCc6gQALQE0jrO9LIBvP2qxMKKjlZWM1qwBvvgiTcIWBEEwO5FQCkImEBqaXI3DmCKSOaCMkUz9NZYuXYoZM2bg4sWLUKvV0MV55mtnZ5fqtjOLWbOUx//KbWcHMBXKONXf8d841b4AtABmfXR2Tiiz6RNSq4GZM0VCKQhC1iUSSkHIBLTapPY8BBAAJZG8DGAagNGpuoaFBdCvXz+EhYUBQLxkEgBcXFzg4OAAe3v7FD+mdIylpSWkDFYF/OFDpYcy4TjV36H0AjcGsBvKONXZiD9ONUYkgCgAtvG26nTAsWNKT3Px4mkQvCAIgpmJhFIQMoF8+YCoqMT2fP3h43YAgwFMAtAegOHrKRYoAPz55w2MGDECK1asgEqlik0qLS0t8dNPP+Ht27d49+4d3r17F/vv169f48GDB7Gfx3xMroCERqMxSWJqb28PKysrkySnhw8nNs4xZpxqOSjjVA8h6XGqewHYANAByAtlTOvA/1qSgEOHREIpCELWJBJKQcjAgoKAEyeSmpSzAcDfAGYAyAVgJoCdUJKd7QZdR6sFfH2BXLly4Y8//sCwYcMwcOBA7Nu3DwDg6OiIvn376t0eSYSFhSVIMj/++PG2N2/e4MGDBwmOkZMpBPlxcqpPEprYsSdOuECr1SAq6uPkVJ9xqqUBVANQBMqM+6UABgF4AuWxufLYO/H/R0EQhMxP1KEUhAzo0CFgzhxg/Xrlcel/4/pivANQHEA2AKegJDqA8ih2IIDVAFon0nLSdSg3bYq/rCNJbN26FQMHDoS7uzuOHj1q9H2lRkxymlximlSCmtjHpJPT1VAm2iQ2qeknKBNucgP4F4BFSlFDqQm6B8oknlwAgM8+A/75x/CvgSAIQkYnEkpByECCgoABA4A//0xqVneMgQDmAjgOZQWcGDoAvgCeArgOwB7AwQ8vAJgD5bHslx8+rwGgBtzdlRVhNIk8s9DpdJBlGdqkB3JmGoklpzH/Hj++HM6ezQXlMXdcD6Ek715QxqlOhH7jVHcCqA/gD8RM1qleHTh4MLlzBEEQMifxyFsQMojz54F69YBXr5TPk04mzwCYB2W2sc9H+9QAFgCoBCXpmQVlbN/4j44b8+FjACSpBgYMSDyZBAC1Wg21Wp34zkxGkiTY2trC1tYWHh4e8fb99ZdSOilhMfPUjlPN/eHjqw/XBhwcjAheEAQhAxMJpSBkABcvAjVqAGFh+qzO4g0gyWwTSpIZt5FxH14JqdXKZJxvPy6f+AkqUSKxrcaMU73z4WM2AMrXumTqqzoJgiBkaGKlHEEws3fvgIYN9U0mTUeSlNfy5YClZfpdN6MhiYsXL+L69eWJjFMdAGWGd/8P23JAeeS9A8CaD9teIX4CDyilg/4HZaxlLQBKj7O3d1rcgSAIgvmJhFIQzGzoUCAw0NCl/sKhzDouDmVMZE4ok3Cu6HXNmGRy5UrA5+On5p8AnU6HgwcPYvDgwShQoADKlCmDjRuHQKN5H+eo0VBmaf+C/yY9AUrvZHkos7jfQenBLAJg+Idjp3zYfwRKz7DyaN3CQpmUIwiCkBWJSTmCYEbXrwPFisV89hxAUShL+H281F8JAA0BrP2wrSWUROYrKMnLEyjjKt8DuASlDmLiNBrA1hZYsQJo1MhUd5LxvX//Hrt378bGjRuxefNmvHz5Ep6enmjevDmaN2+OmjVr4rvvLDBnDqDTnQFQEUrtyTmJtHYKyjjVrwF0hjJG9SyAF1B6JctC6d1UZtprNECnTsDixWl9l4IgCOYhEkpBMKOBA4H58+NOwPkVylJ/S/HfUn8NABwFcBVKT+RjKOP5hgD4IU5r+wDUhlLi5psE14qZNd60KfDLL8BHc1KypKCgIGzduhUbN27Ezp07ERYWhmLFisUmkRUqVIBK9d+Dmnv3lAQ/PNy0cWg0yoQfUdRcEISsSkzKEQQzkWVgyZKPZ3Prs9Tfuw8f3T9q0fPDR+sE13J0BNq2Bfr2BUqXNk38GdX9+/exadMmbNy4EQcPHoROp0OlSpUQEBCAZs2aoUiRIkme6+UFTJ2qJPqmIklAQIBIJgVByNpED6UgmEn8x91xXYEyEaQ5lKX+cgE4gf+GPEdBKVkTDWDhh2OfABgG4AGUR69OkCSgYkVlnGTevEpikxWRxKVLl7Bx40Zs3LgR586dg1arxWeffYbmzZujadOm8PT0TPJ8WZZx48YNHDt2DBs3bsSJE6dQosQ9HDhgiWQW6NGLWg1Urgzs3ZvceuyCIAiZn0goBcFMVqwAOnZMau9I/LfU30ko4yTjOgmlFuLtONu8oUza+e9Zdo4cwOPHJgo4A9HpdDhy5EhsEnn37l3Y29ujUaNGaN68ORo0aACHZIo+RkZGYsaMGdi7dy+OHTuGd+/exe5Tq9V4/Pg12re3x/79SHVSqVIpy1nu2KH0EAuCIGRl4pG3IJjJs2eJLakYw+3DxxxQlkv8mDOUiR+toUwO+RdKAtoaymNyKwDAy5cmDdms3r9/j3/++QcbN27E33//HTupplmzZrGTaiz1rH/05MkTjBw5MsEyjJIkYfDgwXB3t8e2bcDo0cCPPyrJob4lnVQqJQnt1QuYPh2wsTH0TgVBEDIf0UMpCGby44/Ad98llqiktNRfMJQyNUOhrC8d4wCAmgDmQ5mdrDxmjYw0fezp5dWrV7GTanbs2IGwsDAULVo0dlKNj49PvEk1hvjpp5/w7UcV3TUaDe7fv48cOXLEbjt2TCn8fuxY8sthxuwrUyYao0a9QevWbokfKAiCkAWJOpSCYCZOTkn1esVd6q81lKX+7sTZvw7AMwBNPzrPD4ADlPqHisy41N+DBw8wZ84cfPbZZ8iePTs6d+6Mx48fY+zYsbh27RquXbuGKVOmoGLFiqlOJgHgs88+g62tbeznGo0G7du3j5dMAsoYyKNHldWMvvkGqFYtfq+jlZVyTP/+wOnTgKVlVbRt644NGzakOjZBEITMRjzyFgQzKVcusa36LPX37MPHj7NRftgW04Umw9s74//NSBKXL1+OHQ959uxZaLVa1K5dG3PnzkXTpk0TJHnGWrduHTp37oyCBQtClmVcuXIF0dHRGDJkSJLnlCoFTJsWEzMQFQXIMpE/fy5Ur94RU6dOBQC4urpClmX4+/vjm2++wdSpU6EVM3IEQcjiMv67jSBkUSVLfjzzV9+l/gp/+Ljqoxb/BhD64XwAkOHra+KgTUSn0+HQoUP49ttvUbBgQZQuXRo//PADChUqhJUrV+LFixfYsWMHevfubdJkUpZljB07Fq1atUKTJk1w7Ngx7Ny5E25ubqhXrx5KlSqlVzuSpKx8c+7ccQQGPsGPP/6Iu3fvAlASyhgzZ85E1apV8eDBA5PdgyAIQkYkeigFwUwsLIBWrYA1a2LG5cUs9bceCZf6+x3KUn/1ATSBsnLOBAD38d+knLlQalF++eE8Ddq2Tfv70Fdik2o8PDzQtGlTtGjRArVq1dJ7Uk1qvH37Fp06dcLmzZsxZcoUfPfdd5AkCTY2Nrhx40aqehFXrFgBSZIgyzK6dOmC/fv3AwBUKhVkWQZJnD17FqVLl8amTZvg5+dn4rsSBEHIGERCKQhm1K+fUicSOANl6cS+AD5eXFsNYAGUxHE0gFlQ6lNOBLAVwEoA9lDqVk4G4AaVCqhSBShRIh1uIhmJTaopXLgwvvzySzRv3hy+vr5GjYPU1+3bt9G0aVM8evQImzdvRqOP1px0dnY2uM3o6GisXLkSMfMaDx06hHnz5oEkpI+KfgYHB2PXrl0ioRQEIcsSs7wFwYxIoH59pfB1UrOHU+vAupeo4Z/+M40fPHgQu1LNgQMHoNPpULFixdiZ2UWLFk3XeHbv3o02bdrAzc0NmzZtQrHEq8mnqt169erF22ZpaYl69ephy5YtsT2XhQsXxrx58/DZZ58lSDQFQRCyCpFQCoKZPXyorJgTFqYkmMZSQYe+0nzMUX2jrLc4YwaQLZvxDSeBJK5cuYKNGzdiw4YN8SbVxKxUY+pJNfrGNXPmTAwZMgT16tXDypUr4eTkZLL2O3TojZUrH4MsB2UIgjWAKNjavkBo6AFUqBAO8iHCw8Nx8eLFdOmJFQRBMBeRUApCBvD330CLFkpCacxPpBrR8MYZ7EMt2OA9dJKEKGtrPBg3Dl4DB8LCwsIk8ep0utilCjdu3Ijbt2/D3t4eDRs2jF2pxtGMy8OEh4ejd+/e+P333zF06FBMmTIFarU65RP1cOMGMGsWsGDBe5BKEglIUEYQyVCpCFlWQ5KASpVe4dixL7B2bR+0bNnSJNcXBEHIiERCKQgZxNq1QLt2SkKp76oscUmQUREnsB0N4ITg2O0xa8H0Vatxztsbs2bNQqVKlRKcv3fvXuTIkSPJR9Lh4eHxJtW8ePECHh4esSvVpPWkGn09efIELVq0wMWLF/Hbb7+hQ4cOJmk3Ohr44Qdg7Nj/Pk9JTLFzR8ftuHXrc2TLJnopBUHImkRCKQgZyLlzyvre164pn+vz06lBFGSoMAJTMAYTYYnEl8aRAbQE0P3vv9GkSZN4+xYsWIA+ffqgVq1a2Lt3b+z2169fx5tUExoaisKFC6NFixbpOqlGX8ePH4e/vz/UajU2bNiAChUqmKTdt2+BRo2AI0dS24McDUfHaBw+bIWSia2kKQiCkMmJhFIQMpjISODnn4FZP0bj7kMN1IgGIUGOU0pIi0hEQQs1dGiJdRiO/6EczifbrgwgwtIS1vfvA+7usdtnzpyJb775BgCgVqtx7tw5HDhwIHZSTXR0tFkn1ehr6dKl6NWrFypUqIB169bBw8PDJO2GhgK1awNnzqSu5/g/0XByUuPoUQkmmhckCGlOp1P+0D19Grh0CXj3Tul5z5UL8PYGKlWK9+tE+ISJhFIQMii5YWMc3Pkeg+RnuISbKIS1UKMAHBGMsjgPb5zBHazGZIRgM4DKABYD2AzgGpSRfUUBfAOgzYc2dZIEqWVLqNYoRdInT56MUaNGJbi2RqOJN6kmZ86c6XDHqROzws2sWbPQo0cPzJ0716SP3r/6CliyxNhkUqFSyShQQIWLF5UlGwUhowoKAhYuBObOBZ48UYr5azSALCv/BpThHJIENGkCDBgAfPaZeWMWzIyCIGQ8V6/GzM/hM4DOAGv9N2eHBHgHoDXAlh8+3wxQC7AZwJkA5344BwDHxjlPB/Dl2bPs2rUr8WF/zEuSJPr4+PD169fm/gro5eXLl/zss8+oVqs5d+5cyrJsdJsdOnSgpaUlb9y4wZ07433JCUz58LXa/OHzVQQ6ECj4YbvfR8fHvLok+FrHfT169MgEXw1BMI01a0hnZ1KlSux7OeFLo1E++vuTz56ZO3rBXEQPpSBkRAMHAvPnx878+BVATwBLAXT5cEgDAEcBXAWQE8BdKGup5o3TDAHUAXAEQBAAWygrfc+ztcWg0FAA/63qEsPKygqvX7+GVQbvQrt8+TKaNWuG4OBgrF27FjVr1jRJu8+fP0fRokVRtmxZPH++F9euKb0yyle4BICGANZ+OLomlKL0PgDOAygNYH8irR4DcDv2M0kCZs0ihg/vDS8vL1y5csUksQuCMXQ6oE8f4Ndfle9RQ7MDtRpwdAR27AB8Pl6fQcjyMs5oekEQ/rN5c7xpxD0AVAUwBEpiuArK6t7fQ0kmASAf4ieTgFLMpjmACAB3PmzTAKiv08HS0hK9evXCwIEDUa9ePXh6egJQZnOfO3cuLe7KZDZs2IBKlSrBzs4Op0+fNlkyCQDZs2fH1KlTsW/fPly58jv+y7X7AtBCWakoxh8AggHshbLuelIqA+gY+5KkDrhwIR/CwsJMNgtdEIwhy0D37sBvvymfp6arSacDgoOBmjWVMZfCp0UklIKQ0bx9C9y9G2+TBOAXKKlLHyjjIitAWeU7JU8/fIy7Zk7h6Gi0atIEv/zyC+zs7LBgwQK0aNEitk7l/fv3jbyJtCHLMiZMmAB/f3/Ur18fR44cgZeXl8mv06NHD3h4pJTCA0BupObXqCxL+OuvPyFJEtq3b2+CiAXBOLNnA8uWGb+4gk4HREQAjRsDb96YJDQhszD3M3dBED5y6lSSg5VGfBhzpwZ4Ro/BTUEAswOsnsg++coVDho0KN74yZh/DxgwwNxfhQTevXtHf39/AuDEiRNNMl4yOYULXyagJdCagAeBCgR0yXy5SyQzhvLjVyQBV1asWDVN70EQ9HHzJmlpyQ/jgS0J3Ejke/bj8cMk8JbAUAJeBCwI5CDQkkAo1WqyWzdz35mQnjRmzGUFQUjM+/dJ7orpZcwBIKVyhjKADgDeAJiTyP5xw4dj5ubNsZ8zTtfE2rVrcePGDWi1WrO9NBpN7L8fPXqEtm3b4t69e9i4cSOaNWum15cytaKigDt3SkDpoZwCQA1gK0z3UGcngCBUqiQedwvmN2pUTBWDnwBsA9AbyjCOGHcBTIBSybbxh23BAPwAPIIywrsggBcADgGIgE5ngyVLgG++AUqVSpfbEMxMJJSCkNEksTziQwABUBLJywCmARidTDP9oTykXQagTCL7bz98mOS5VlZW0Gq1kCQJ4eHhePfuHaKiogx+6UxRa+cjrVq1SvNkNirKAdHRQ2FYCm+IPwFoUbJkaxO2KQiGCwwE1q+PSSizA5gKJUH8Hf9NAUxs/PAIAPcBnIUygjvGd7H/0miUmrrz56dZ+EIGImZ5C0JGExQEuLkl2NwMSp/BNQCDodSbvAIgfyJNjAcwDsD/EPfXexwqFaYHBGDExImITmYNQY1GAw8PD3h6esZ+TOzl7u4OrVab4HxZlhEdHZ2qZDQyMhKbNm3CkiVLULx4cfTq1QuWlpaIiopKdZv6viIi7PHs2XYAxQF4QUnhJyL5FL4klAR0fzLHAEAIAHcAtSFJdrCw2GDWnmBTvUy1VrqQvn78ERg2DHEmnxFAdQA3AFwHsBtAOwCzofyZCijPPTwBDICSgEZ+OC9h/Vdra2VYuEZ0X2V5IqEUhIwoZ06lmvAHGwD4A5gBYBCAJwCKAagCYPtHp84D8PWH42Yk1X6RIsD163j69CkGDhyI1atXQ5KkeI+9a9WqhWbNmuHly5cIDAyM93r+/Hm8UkOSJMHNzS3JhDPuy9raOsXbj4iIQN++fbF48WIMHjwYU6dOhSYd35EiIwFLS0NSeED/hHI5gE4AVsLDYytGjPBJNEFO66Q57v+fKUiSpPcQhoz+0mg0kGKqd2dxX3wRt4cyxhUA5aDUiDgEIBeAE/hvyMcWAE0ALIQyfGMjlEE2laH8Biob7xoXL4rH3p8C8TeDIGRE9eoBy5cD0dF4B6UfoBz+6x/IAaW/bCCANQBiHpz+9eHYDlBGQyVKo1HaB+Dh4YG//voLXbt2Rc+ePfHo0SMAwOLFi9GnTx+EhYVh/fr1yJEjfkkcnU6H58+f4+nTpwmSzcDAQFy/fh379u1DYGAgIiPjry3u6OiYIMmM2/up0WgwZMgQXLx4Eb///js6d+5szFcyVbZu3QDgbygpeS4AM6G8cfZDwhTeUCsA2AFoiqdP+6Fo0U6o9+H/Iz3JspymCashr+joaERGRiI0NDTV55uaKRLgjJJEq1RJj/09fjyxVaBSGj9868PHEQAKQBlYEwzl2UhtKAmpZ+zRZ86IhPJTIHooBSEjOnkSqFgRgJI0zgVwHEr57Bg6AL5QygJdh9KPVh2AI5SHUB8/gK6COH1rV64AxYvH2x8aGorx48fj7t27WLNmDU6fPo3mzZtDlmVs2LABFT/EYwiSeP36daJJ58evkJCQeOdaWloiR44cKfZ4urm5JfuGaah3796hePHieP8+G968OQWdLuZR7mwo/xur8V8KH5c+PZQvoPw50A65c/8OD4+K0Gq1OHz48CfTI5YWSKZ5j25aJNFJ7TP127JKpUoy2bx//yrIxJ4a/ATgWyilsf4FEHds90QAY6F8v9+F8gcSoPyWqgxgFJQSW8rfr5MmKY/VhaxN9FAKQkbk4wP4+ODM2bOYp9OhL+Ink4DSb7AAQCUoI/vKQRnJ9AJA90SaXAIgv0YD1KiRIJkEAFtbW0ybNi328woVKuD06dPw9/eHn58fFi5caHBvoSRJcHFxgYuLC0qUKJHssb/99hv69euHggULon///oiIiIiXcN64cQOBgYEICgqKd55Go4G7u3uSCWfcMaBabcJxnh8bPXo0njx5gvnz16N377jjAvtBmagwCEB9APYADn54AcpXPhQxb6RAjQ+vuP4CEA2VqgO6dZPg6xuAxo0bY8+ePahTp06KsQmJi/u4PSvQ6XTplthOm6ZBwg7elKYAxiSgTfBfMgkov43yQVnD6z8mHl0hZFCih1IQMqpLl4Dy5ZHIb/vUs7QELl8GChbU+5S44xm/+eYbTJs2zaTjGXU6HYYPH47p06eja9eu+Pnnn5Nd9jEyMjLJR+0xr6dPn+LZs2cJZpmnNM4zKCgILVu2RJ8+fTB79hwUKwbcuhX3DfEUlDfNr6HMeB0H5TFfYgI+7I+rMoA7kKQnePBAjZw5CV9fX1hZWeHgwYOil1JIdx4ewLNnH29Nafzwn1AG1gyH8lg8rkpQ1uZSVtuSJGDBAqBnz7SIXshIREIpCBnZ1KnA8OEma+5Qmzbw37MH9evXR40aNeDt7Y0SJUrA0jLh7My4SGLevHkYNGgQateujb/++gvOzs5Gx/P69Wu0bdsWe/bswY8//ogBAwaYLKnS6XSJTihK7BURERHvXAcHB3h6esLCogUuXfr4DdM4KhUwYAAw48OMqc2bN6Np06bYs2cPateubdJrCUJKGjcGtm+P+0eTPlMAbwAoCmVy2bKPWszzYd+u2C0nT4q1vT8FIqEUhIyMVLKPuXONbip0wADYz56Nj3/gNRoNihYtipYtW2LcuHHJtrF37160bt0aLi4u2LRpE4on8uhcX9euXUPTpk0RFBSE1atXm+2RL0m8efMmyWRz376uePasDpRBBsaRJCB3buDaNcDG5r/rV6hQAXZ2djhw4IDR1xAEQ0yYoLyUzvx3UEplZYPSG5/c+OGyUMZP3sZ/9Vp3AfgcyiPyoQCUMZTv3gHJPHQQsgiRUApCRkcCU6YAY8cqnxtSLFytVrKYH36A7uuvYWdvj/Dw8EQPLVeuHM6ePZtik3fu3EHz5s1x9+5drFixAk2bNtU/ng82b96MDh06IE+ePNi0aRMKFChgcBvp5e1boGZNpfSJ8XXaCbX6PWrV+h1VqjyNfdR+8+ZNDBs2DLt27ULdunVNELUg6OfGDaBo0ZjP9J0CaA9gH4C6UFbI6QVllvdPUGZ3nwFgB40G8PcH/vorHW5EMDuRUApCZnH+PNCtm/JRo0l+bGXMfl9fYMmS2Ek4o0ePxqRJkxI95ciRI6hSpYpeoYSEhKBz587YuHEjJk6ciJEjR+r1qJokpkyZgtGjR6NZs2ZYtmwZ7O3t9bqmOb16BTRoAJw6peT3xpEBSHByGoJ372YlOc4zuULynp6esLW1NTYQQQAA1K5N7N9/BmQlAH2Q+GKtH48fBoB/AIwBcB6ADYBGUHonPWLPOnBAmQcoZH0ioRSEzIQEDh9W1jLbtUvJdD7m5qZkP337KqWH4iR6d+/eRf78CQtzxzxuLV++vN6hyLKM77//HgEBAWjdujWWLFmSbJITGhqKbt26Yc2aNQgICMDYsWNNWu4nrUVGKm+MJ06Ypj1JAjZvluHjo4zzXLt2Lb7//nv06NEDVlZWCR69f9yzbG9vr1cheScnJzHZR0jS9evX0b79HJw7NwemW6te+Zu2Zk3l15T49vs0iIRSEDIrEnj8GBGXLqF3t24YM2kSjrx8iXELF+LSpUuwiRmk95FatWrh4MGDsSul2NraolChQrh27RrmzZuHL7/80qAwNmzYgE6dOqFgwYLYuHEjvLy8Ehxz//59NG/eHLdu3cKyZcvg7+9v8O2aQ8eOHbF27VpcvHgRgYGFUbNm3L3/g1LYeTOAxlBKAm2GsqLIvwD8kFxNSpUKcHUFevachEmTRqNEiRLQaDRwdXXFnj174h1LEsHBwQlmsic25jM4ODjeuZaWlkkWkY/7ypYtm1g+MZOTZaWIw5kzSqnZ0FAlsfPyAry9lVfMA4Hw8HBMnjwZU6dORe7cuVG27D/YsMHLJCV+JElZcvHaNSBPHuPbEzIHkVAKQibn7++PDRs2IGfOnPDy8sKRI0fg7++PtWvXJtoztWrVKrRr1w4A4OTkhOjoaBQuXBglSpTAH3/8gW7dumHevHl6LZEY49KlS2jWrBnevXuHtWvXws/PL3bfgQMH0KpVK9jb22PTpk0olYmWzHj+/DmKFi2KMmXK4t69vXj4MGYc5V0oq4k0BLD2w9E1oYwd84HyCLA0UlqGUaV6BJWqCCwtJXh5eWHChAlo2bIlDh06hGrVqqUq5rCwsBTLKgUGBuLFixfxzlOr1ciePXuKPZ4eHh6wsLBI4uqCOQQFAYsWKXP3Hj5UtsUtyanTKcmmpSXQoQPg43McP/7YCffv38d33333YciKNerWBY4dI3S61HcpSpLyWr8eaNbMyBsTMhWRUApCJhYZGQkbG5vYcXj29vZ49+4dAGD27Nno379/gnPCw8ORN29eeHt7Y8OGDbh27Rrq168PBwcHfPXVVxg7diyKFi2KtWvX6j1ZJjoaWL36LYYP34GHDz3g4OANCwsb6HQheP36APLle4mFC5ujTh0nk917evn111/Rs2dPAEsBdPmwtQGU4s1XAeT8sO3hh3+roP+63m0hSS9QpYoOb968xMWLF1G2bFm4u7tj9+7dJr6T+KKiovDs2bMUez2fPn2aYGlDV1dXvcZ52tnZJXF1wRRIYPVqoHdvZfKYPr2LkqQDqYan53ps3lwc3t6xM3Lw6lUU8ue/guDg0kjN4++YOYB//gm0TmwxKSFLEwmlIGRi/fv3x9wkSgqp1Wrs27cP1atXT7Dv7du3sLe3j+3BvHPnDurVq4fQ0FDMnDkTo0aNwsuXL7Fs2bJkZ3FHRAAzZwKzZgGBgYBGww9zheL2cMhQqyXodBLKlQNGjgRatsw846pIwtm5OoKDb0CZ4bobQDsopVQSJuwKfRLKgwBqQ5LOIX/+/rCyeonLly9j7dq1aN26tUGTpNKSLMsICgrSq57n+/fv451rZ2enV4+ni4uLGOdpoKgo4KuvgN9/V36WDH0nV6mIPHkk/PMPEPN3Y79+/bBw4RJ07XoNS5fmBaDfugox/3XFiwPLlwNlyxoWi5A1iIRSEDKpqKgo2NraIioqKtH9KpUKzs7OuHDhAnLmzJnoMXE9e/YMDRs2xL///osVK1bg119/xd9//40RI0ZgwoQJCVbHOXtWeXx244b+b2YqldKL0ry5snqGu7t+55lTVBRgY3MF0dHlADQHcAhALihjJZPqxUkpodQBKA+gMiTpZzg714Knp5JQyrKMMmXKIEeOHNi5c6dJ7yUtkcTbt28T7eH8eNubN2/inWthYZFib6enpyeyZ88uxnlCeYTdrh2wdq1xVQc0GsDFBTh+HPjnH6UnfuHChfjqq69w+bKyrsKqVUpSqdUqPwsxVColkdTplIR04ECgVy9AjIb4dImEUhAyqSFDhuDHH39M8bi2bdti5cqVerX57t07tGjRAocPH8by5ctx+/ZtjBw5EjVr1sTKlSuRPXt2AMDGjcojLTJ1tRnVaiB7dmD/fqBwYcPPT08XLsT0uIyEssycGsBJKAlhUlJKKOcBGAXgFoBs0GhqokgRJaEEgNWrV6NNmzY4evQoKleubIrbyFDev3+v9zjPuG9RKpUq2XGecZPSlFZ/ysy+/14pS2uKd2+NBsiVKxSPHmXHV191wfz58+Ptf/FCWUnnzBng3DkgOFhJLvPmVVa/qVoVqFYt8zxxENKOSCgFIZNycXHB69evk9xfsmRJ1KpVC506dYKPAeueRUREoEuXLlizZg3mz5+PwoULo23bttBoNFi9ejVCQ6uiUSMlkTTmt4daDWTLpizLljt36ttJa2vXxowH+wnAtwByQ5nFnVxXTHIJZRCAwlAS1G8/bKuJYsVe4upVJaGUZRmlSpVC7ty5sWPHDlPcRqYUFRWF58+fJ7lee9x/f9xT7+zsrFdZpcxQBzVutYHw8MLw9o77KDq11QZCAPzw4biTAF7j119/RY8ePdL0XoSsS5PyIYIgZETTpk3D7t27ERYWhi1btsDd3R358uVD4cKFsWzZMowZMwZffPGFwe1aWlrizz//RPbs2dG7d2+MHz8eZ8+eRZs2beDn1wqWlneh01mCNK5LQqcDXr4EOnUC9u3LuD0cyjLfDwEEQEkUL0Mp3jw6lS2OBuCCj8dfRkb+lxCpVCqMGTMG7dq1w4kTJ1CxYsVUXitz02q1yJkzZ4pDNmRZxqtXr5Ls6bx37x6OHTuGwMBAhIWFxTvX1tZWr7JKrq6uZhvn+dNPP2Hbtm3o3bs31Oq9cfbcBTABQEsoySQA/Iz/qg0EJdPqyw/n5gFQBsB+hISIlEBIPdFDKQiZ3MOHD5EnTx4MGjQIM2bMAAB4eXmhVatWmD59eqrbjVnVZtSoUVCr1Th37hxatYrGzZul8N/foqntHdkPoFai1z127BgqVaqU6rhNbd06oFWrZgD2ArgGYDCUe7wCIGGReEVSPZS3ABQFMBNAkzjb28LS8iIuXDiHbNmywcXFBTqdDiVLlkS+fPmwbds2093QJ4wk3r17l+xj9piez497/7Vard7jPD8eb2wKpq82EAHgNZRVbU4D8EGLFkuwfn1Xk8cufBrEnyOCkMnFvHnFXcLPx8cHp06dMqpdSZIwcuRIWFtbY/DgwfDza4jXrx/GOcKY3pEYAwD4wNFRmSmuVgMFCxY0Km5Te/RoA4C/AcyAMhlnJoCdAPoB2G5ga4+hLL044MPrPxERQNGiRTFgwADMmjULarUaY8aMQYcOHXDy5En4+voaeSeCJElwcHCAg4MDihQpkuyx4eHhyY7zPH78OAIDA/H8+fN44zwlSYod55lSAmplZZXguoGBgfDw8EjQG9qjRw9MmPA7Hj0aAuXnbTeAHVCqDcTtwdV3/Igl4i6RCChjmgUhtURCKQiZXExCKccpQufj44MJEyZAp9MZPSv2m2++we3btzFv3jwAiwF0/7CnLwAt/lvXFwD+QPzekZRUB9AKwcGAgwPQooVRoZrcu3fvMH36AEhSOZAxj6hzAJgIYCCANQAMKbhXEsCGeFskCbCzGw0Li6cICgqCk5NT7L42bdpgwoQJmDBhArZs2WLMrQgGsrKygpeXV6IrP8UVHR2d5DjPwMBAXLlyBXv27EFgYGCCcZ5OTk4J1mdfuHAhcufOjZ49e6Jly5bIkSMHHBwcIEkSPDx+waNH5aCst30IQAUof9iYxuvXwPPnyoQ5QTCUSCgFIZNLrIfS19cXoaGhuH79OkqUKGH0NebMmYMFC85Bp/sOQDMY3zsS1zuoVFZYu1ab4RLK0aNH48mTJ6hSZT2OH1fHmdHeD8DvAAYBqA/AHkpdyYMf9r8AEArg+w+f1/jwcoNSeig+d/eZsLQEvvjiC0yZMgUNGzZExYoVoVarMXr0aHTq1AmnT59GhQoV0uZGhVTTaDTIkSMHcuTIkexxJJMd5/ngwQPcu3cPgDKMZcyYMRgzZgwAwNraGh4ennjw4BKAIfiv2sBWmHL9bUCZzd2ggUmbFD4RIqEUhEwusR5Kb29vSJKEkydPmiShDAyUoNMtBGDq3pFuAEIgy2qsX18dp0//kGGSpjNnzmDevHno27cvGjb0QcOGcfeqASwAUAnKJJtZUMZYjv+olTEfPgZASSgTsrRU6nG+eQPMnDkT586dQ8uWLXH27Flkz54dbdu2je2l/Pvvv014h5kPSZCELMuxH1PzSu25pr6mq6srnJ2dUbRoUciyjCdPnmDSpEmx9ytJEkhCkiR4eRXG3bs2UP4oAZSecn2eAhjm2TOTNyl8IkRCKQiZXMwj7bg9lPb29ihatChOnTqFbt26GX2NPXteQFm72lS9IxZQxl42hPIGeRXh4dNRrVo1HDt2DOXKlQMAg9/AU/OGn9w5e/bsgSzLiI7eg1y5KuHJE2vIcsw9+0ApUB5j3IeX/iRJRsWKF9CsWTPIsoxZs2ahVq1amD17NipVqoTOnTtDkiSUKFECGzduRI8ePZA9e3azfC0yQpKWFeeQSpIElUoFlSrhz1LM/YaFheHatRswbbWBxKWmrqwgACKhFIRML+aNSPfRO4Gvr6/RE3MA4PDhw/j662UAFsJ0vSNVPrxiNAXQChERhVC+fPnYnpmMxQfAcRO2pwMZiFOn6uPs2fexSYVKpYJGo8Hdu3fxww8/wMnJKXbbypUr4eHhEe/YxF5xkxR9XzHnaLXa2M/VanWaXSetjs9M15AkKd7km1u3bqHwh0r/KpUKsizDy8sLsizjwYP7+O+JwHYo1QYmAWiPpKsNGC7OEF5BMIhIKAUhk4tJKGVZjrfdx8cHf/75JyIiIlK9asivv/6Kfv36oVChEbh6Na17RwrC1tYFoaGv0L59e9SsWTPDJQUzZ4ZgxgwHo+9UkgCVSo09e3LBzy/xZ4wzZszA4MGDsWTJEnzxxRdYunQpunXrhnXr1qGsWCw5S4r5WQaAfPnywcvLC3v27IGPjw8GDBiAIUOGwDTVBpImvrWEVKMgCJlaVFQUAbBjx47xtp84cYIAeOLECYPbjIyMZN++fQmAffv25YEDUQSaErAj8JBAawJWBG5TWS8nsVcJAn7J7I//srQkBw0aTAAEwK+//pqRkZGm+jKZhCyTffrodz9JvVQqUq0m16xJ6Voy27RpQ1tbW16+fJlRUVHMnz8/W7RokT43K6S7iIgIduvWjX379qWbmxsdHBw4d+5cvn79mrly5aKbWzmq1dFxvp9mffh5WW3kz+ApAqCV1RLKsrm/CkJmZdrpYYIgpLuYXo2PH3mXKVMGWq3W4MfeL168QJ06dfDrr7/il19+wbx58/DkyWYotRgn4r/eEQuYsmRJ6dLAw4f3YWVlhXnz5mHBggX4/PPP8fLlS5Ndw1iSBMybB0ybpqyBbGhFppjlJnfsAFq1SulaEn777Td4eXnB398foaGhGDVqFDZs2ICLFy+m/iaEDOvevXt48OAB5s+fj9q1a+PatWvo168fAgIC8OTJE3z//S/Q6eJ+0/WDsqb8IADvPmw7CKW6wPdQqg3cj/P5QcQ398P2xQAAT8/NmDTpe3z//fcIDg5Oo7sUsixzZ7SCIBhHlmUCYJs2bRLsq1ChAjt37qx3W+fOnWPevHmZPXt2Hjp0iCT59u1b5sqVi1ZW5QiYqnfkebzPNRqyU6fz1Gq1bNq0KUnywIEDdHNzo5eXFy9evGiaL5YJXb5MVq2qxC9J0cn0/vzXK9mjB/n6tWHXuXnzJh0cHNi8eXOGh4czX758bNmyZZrck2Ae4eHhHDduHC0sLJgvXz5u3749dt/p06epVqv59ddfU5bJIkVISYr7/XWSgIrAgA+fB8T28id8BXz0vZk3yWPv3r1rvi+IkCmJhFIQsgAAbNWqVYLtffr0YbFixfRqY/Xq1bSxsWH58uV5//792O0DBgygSqXi0KEnP3ojiyZQnkAOAm8/bDtAYOKHV3YCXnE+PxDn3FoEGhL4nsBCAoNobW1DR0dHXr16Nfba9+7dY9myZWlra8u1a9ca/4VKA9mz16O39wkWKqQkjh8/xq9QgZw4kQwMTP01/v77bwLg5MmT+euvvxJAhkyyBcPt3buXhQsXpkaj4YgRIxgaGprs8evXGzfkIrGXWk2KkRSCsURCKQhZAAD6+/sn2L548WJKksTg4OAkz9XpdBw1ahQBsF27dvHe0OL2jgQHkzY2H78ZpbZ3ZBYBXwIuBDS0sPBkx44deevWrQTxhYSE8IsvviAAjh07ljqdzjRfNBOxs7Pjjz/+SJIMCSGvXiXPnydv3SKjokx3ndGjR1OSJG7ZsoV58+Zl69atTde4kO6eP3/OTp06EQCrVavGy5cv631umzZKEmiKZFKlIp2cyGfP0vBmhU+CSCgFIQsAwObNmyfYfvnyZQLg3r17Ez0vODiYTZo0oSRJnDp1KuUURuTPnZs2vSPnziV/f7Isc/LkyZQkic2bN+fbt2/1/dKkqejoaALgb7/9li7X+vzzz+ni4sJJkyZRkiSDkhAhY9DpdPz111/p7OxMFxcX/vbbbwb/kRQURBYurKNKlfxQi5RekqQMN9m5M41uVvikiEk5gpBFfFw2CACKFi0KW1vbRCfm3Lp1C5UqVcLBgwexZcsWDBs2LF5NvMT06QPUqGH4ZJSkEd98E5JiqRJJkjBixAhs2rQJe/bsQeXKlXH79m1TBZFqb9++BQA4Ojqm+bXUajX+/PNPODg4YO3atciZMycmTpyY5tcVTOfKlSuoUaMGvvrqKzRt2hTXr1/Hl19+Ga9ckD4cHXUoXLgXyJtQqZiqWNRqZWLZunVAvXqpakIQ4hEJpSBkEYkllGq1Gt7e3gkSyp07d8LX1xc6nQ4nTpxAw/jrCiZJpQLWrgXy51fejIwhSYSl5d9Yvrwojhw5otc5TZo0wYkTJxAREQFfX1/s2bPHuCCM9ObNGwCAUzpVg3ZxccH69etx7do15M6dG3/99ReuXr2aLtcWUi8sLAwjRoxA2bJl8fLlS+zbtw9Lly5FtmzZDG6LJAYOHIht2xbjzz/voGdP5Y9AtVq/xFKSlFfx4sDp00DTpgaHIAiJM3cXqSAIxgPABg0aJLpvyJAhzJMnD0nl0fH06dOpUqnYsGFDvjZ0yvEHz56R5ct/PNtU/zFbAPnll+T9+49ZrVo1ajQazpgxI8VH7jFevXrFevXqUa1Wc+bMmXqfZ2rnzp0jAJ48eTJdr/v7778TAJ2cnNiuXbt0vbZgmG3btjFfvny0tLTkhAkTGB4eblR7kydPJgD+8ssvsdv27ZOZK9dFAjpKkkyNJuHPXMy2fPnIWbPIDFbiVcgCREIpCFmAJEn8/PPPE933119/EQDv3bsXOwlg+PDhjI6ONuqakZHk998rb1T6TRDQEdDRzu49N2yI204kBw9WCpq3bt1a7/GRUVFRHDJkCAGwW7duRr9Rp8b+/fsJgDdu3Ej3a/ft25dqpVuK165dS/frC8l7/PgxW7duTQD87LPPePPmTaPbXLJkCQFw3Lhx8bbPmzePADh16hrOnk126UKWLk3mz08WLUo2bkx+/fULfvnlCmawOW1CFiISSkHIAiRJYt26dRPdd+fOHQJgoUKFaG1tzT///NOk1757lxw+XJkpGpM8arXKK25PSYECMitVWk7AIXZWdFxr1qyhvb09ixQpYtBkk2XLltHS0pKVKlXikydPTHhnKdu0aRMB8JkZpshGRESwUqVKVKvVic7wF8wjOjqac+bMoYODA7Nnz87ly5ebpAd969atVKvV7NmzZ7z29u/fT41Gw4EDByZ7fpMmTQiA06dPNzoWQUiMSCgFIQuQJImfffZZovuOHDlCSZJob2/PM2fOpFkM3bp9xQ4dpnLxYnL0aHLYMHLcOGWJwTt3lGULZVnmyJEjCYBDhw5NMLv1+vXrLFGiBG1sbAxKfE+ePMkcOXIwR44cqVpqMrViHj2bo3eUJB89ekR7e3sC4JUrV8wSg/CfM2fOsEKFCgTAXr168dWrVyZp98SJE7SxsWGzZs0YFacW1b179+jm5sbatWvH256YKlWqxJbwWrdunUniEoS4REIpCFmASqVirVq1EmxfvHgxLSws6OzszNq1a6fZ9RcvXhw7pk8fs2Ypq+x07tw5wXrdISEh7NChAwFlPe+IiAi92nzy5AkrVapES0tLLlu2zOB7SI3Zs2fT0tIyXa6VlN27dxMAixcvbtY4PmVv377loEGDqFKpWKpUKR49etRkbd+4cYNubm6sUqUKw8LCYreHhoaybNmyzJcvH1++fJlsG7Is08HBITah1Gq1PHjwoMliFARSJJSCkCWoVCr6+fnFfh4ZGckBAwYQAHv27MlRo0bRzc0tTSav7N69myqldgkB6D0GcuXKldRqtWzYsCFDQkLi7ZNlmfPnz6dWq2XFihX54MEDvdoMDw9nt27dCIDffvttir02xpo4cSLd3d3T9Br6aNGiBQFw5syZ5g7lkyLLMtevX89cuXLRxsaG06ZNS/AHkjECAwPp5eXFYsWKMSgoKN5127RpQxsbG164cCHFdu7evRv78wmAKpWK9vb2oldbMCmRUApCFqBWq1m9enWS5MuXL1m7dm1qNBrOnz+fJLllyxYC4J07d0x63YsXL9LW1paSJMW+We3Zs0fv83ft2kU7OztWrFgx0V6W48ePM3fu3HRzc+OuXbv0alOWZc6aNYtqtZr16tUz2WPHxHz77bcsXLhwmrWvr7CwMFpZWVGj0Yhi5+nk3r17seMSGzVqZPK1r4ODg1m2bFnmyJEj3lKoJDllyhQC0Hs50rVr18ZLKGNeefLkMVuFBCHrEXUoBSGLkGUZly5dgo+PDy5evIh//vkHffr0AQD4+PgAQKIFzlPryZMn+PzzzxEeHg5SqYGnVqtx4sQJvduoW7cu9u3bhzt37qBatWp48OBBvP0VK1bE2bNnUb58eXz++ef4/vvvE623GZckSRgwYAB27tyJ06dPw9fXF9euXTP8BvUQHBycLkXNU2JtbY3x48cjOjoajRs3RnBwsLlDyrKioqLwww8/oHjx4jhz5gzWrl2LzZs3w8vLy2TXiIiIgL+/P+7evYsdO3YgT548sfu2bduGkSNHYvTo0WjZsqVe7Z0+fRoAoIlTPLZYsWLo2bOnyWIWBNFDKQhZgFqtZuHChWlra8syZcrw3r17CY7JkycPhwwZYrJrxpQgwkeP0po0aWJwWzdv3qSXlxdz5syZaA9bdHQ0x44dSwBs2LBhvMd/ybl9+zZLlChBe3t7/v333wbHlZLWrVuzTp06Jm83NcLCwujm5katVstmzZpluDXPs4Jjx46xdOnSVKlUHDhwIIODg01+DZ1Ox7Zt29LS0pL79++Pt+/69et0cHBgkyZNDPr/DQgIYLZs2dixY0cWKFCAjRs3NnXYgiAeeQtCZqfT6WIfOX/xxRcJxiPGaNWqFWvUqGGy616/fp3Dhw9niRIl4iWVrq6uqWrvyZMnLFOmDJ2cnHj48OFEj9m2bRtdXFzo5eXF06dP69Xu27dv2aJFC0qSxEmTJpn0EV/dunXZqlUrk7VnrJ9++il2POukSZPMHU6W8fr1a/bu3ZuSJNHb21vv7z1DybLMQYMGUZKkBI+z37x5wyJFirBYsWJGJbJjx46ls7Oz0XVoBeFjIqEUhEwsJlkCwJw5cyabLE2dOpW2trYmfyP59ddfKUkSV61axW+++SbFenjJefPmDf38/GhlZZVkj+Ldu3fp7e1NCwsLLly4UK8EUafTMSAgIMWk21C+vr788ssvTdKWKYSGhtLd3Z1ly5alJEncuXOnuUPK1GRZ5p9//kl3d3fa29tz9uzZaZqI/fDDDwTAefPmxdseHR3NRo0a0cnJyegC6YcPHzbL6k5C1icSSkHIpG7fvs2SJUvS3t6earWa3t7eyR6/d+9eAjD5pI127drRx8fHZO29f/+e/v7+VKvVXLRoUZLH9OrViwDYtWtXhoaG6tX22rVraWtry7JlyyY6LMBQRYoU4eDBg41ux5SmT59OtVpNPz8/uri4mHyyyKfi1q1brFu3LgGwVatWfPToUZpe748//iAAjho1KsG+kSNHUqVScfv27UZfJzIykvb29vz++++NbksQ4hIJpSBkQv/88w9dXFxYsGBBXr16lRYWFixfvnyy5wQHB1OSJC5ZssRkcciyTHd3dw4bNsxkbZJKj0xMwjh58uQkeyF///13Wltbs0yZMrx165ZebV+4cIFeXl50c3PjgQMHjIrTw8ODEyZMMKoNUwsJCYkdL5cvXz6WK1cuXv1CIXnh4eGcMGECLS0t6eXlxS1btqT5NXfu3EmNRsNu3bol+F6PWTp12rRpJrtes2bNTDr8RRBIkVAKQqYiyzJnzpyZoCSOhYUFy5Ytm+L5xYoVY58+fUwWz9WrVwmAO3bsMFmbMWRZ5rhx4wiAAwcOTHISwoULF1iwYEE6ODhw48aNerX94sUL1qpVixqNhj///HOqY7SysuKsWbNSfX5amTZtGjUaDbds2UIrKyt27dpVlIfRw/79+1m0aFFqNBp+9913evd8G+P06dO0s7Njw4YNE9SwPHfuHG1sbNiuXTuT/v/NmzePWq1W75qxgqAPkVAKQiYRHh7Orl27EgCHDBkSr2i3paUlS5cunWIbnTt3ZoUKFUwW09y5c6nRaEw2JjExP//8MyVJYrt27ZJcNefNmzds3rw5AfC7777Tq6B5ZGQk+/fvH7tMnr4r8sSIiIggAC5dutSg89JDSEgI3dzc2LNnTy5btowAjEqcs7oXL17E/mxVqVKFFy9eTJfr/vvvv8yePTt9fX0T/Aw9f/6cefPmZfny5U2e2N68eZMAuHnzZpO2K3zaREIpCJlA3GUF//jjjwT7raysWKpUqRTbmTt3LrVarcnWnvb392fVqlVN0lZy1q5dSwsLC9apUyfJXhVZlvnDDz9QrVazZs2afPr0qV5t//bbb9RqtaxevTqfPXumd0zPnz8nAL17RdPb//73P2q1Wt6/f5/9+vWjVqvlsWPHzB1WhiLLMhctWkQXFxc6OTlx4cKF6VZu6dmzZyxQoAALFy7MFy9exNsXGRnJmjVrMlu2bAmKmpuCLMv08vJi//79Td628OkSCaUgZHAnTpxgjhw5mDNnziRnZlpZWem1lvOJEycIgCdOnDA6Lp1ORxcXF44ZM8botvSxb98+Ojg4sEKFCskmfvv376e7uzs9PT156NAhvdo+cuQI3d3dmTt3bp49e1avc2J6efbt26fX8ent3bt3dHV1Ze/evRkREcEqVaowR44ceifaWd2VK1dYvXp1AmDHjh0N+mPCWO/evaO3tzc9PDwSXb3q66+/pkajSdP1tnv27MmiRYumWfvCp0cklIKQgf3++++0tLRk5cqV+eTJkySPs7a2ZrFixVJsLzw8nFqtlnPnzjU6tnPnzqV7QnX+/Hl6eHiwYMGCyS4j+eTJE1avXp1qtZo//fSTXuPPHj58SG9vb1pbW3PVqlUpHn/q1CkC0DsBNYfJkydTq9XywYMHfPz4Md3d3enn55fma5xnZGFhYRw5ciS1Wi0LFSrEf/75J12vHxERwXr16tHe3p7nzp1LsP+3335LlyEKa9asIYA06QEVPk0ioRSEDCgqKorffPMNAbB79+4pPqK2sbHRu7ehQoUK7NKli9Ex/vTTT7S0tOT79++NbssQt2/fZsGCBenh4cHz588neVxkZCSHDBkSW/ZFn2LQYWFh7NChAwFwxIgRydYc/OeffwiAt2/fTtV9pIe3b9/SxcWFffv2JUkePHiQGo0mw5U6Si87duxg/vz5aWFhwYCAgHT/3tXpdOzYsSO1Wm2ia94fPXqUWq2WvXr1SvNYgoKCqFKp+Ntvv6X5tYRPg0goBSGDCQoKYt26dalWqzlnzhy9etdsbW1ZuHBhvdrv06ePXr2ZKWncuDFr165tdDup8ezZM3p7e9PBwSHB8nQfW7t2Le3t7VmkSBG9anDGjMVUqVRs1KgR37x5k2S7APReBtJcvv/+e1pYWPDhw4ckyZkzZxKAXr2wWUVgYCDbtm1LAKxVqxavX79uljiGDRuW5Nf+0aNH9PDwYLVq1QyeIJZaFStWZJs2bdLlWkLWJxJKQchALl++zAIFCtDFxSXRHoyk2NnZsWDBgnodu3jxYkqSZFTJkKioKLMXR3779i3r1KlDS0tLrlu3Ltljb9y4wZIlS9LGxobLly/Xq/3t27fT0dGRRYsW5Y0bNxLsX7RoEQFk+MfHwcHBdHZ25tdff01SSZjbt29PW1tbXrp0yczRpa3o6GjOmzePjo6OdHNz47Jly8xWPikmkZ8xY0aCfe/fv6ePjw9z5cqVrmNcR48eTVdXV7Huu2ASIqEUhAxi48aNtLOzY6lSpQx+jGpnZ8cCBQrodeylS5eMHvsYM7nnyJEjqW7DFCIiIti2bVuqVKoUx5yFhISwY8eOBMB+/frpNdP9xo0bLFKkCB0dHROsUvLTTz/R1tbWqPjTS0yh7sePH5NUvhalSpVioUKFkuyBzezOnTtHX19fAmCPHj3M2pO8atUqSpLEoUOHJtgnyzK7dOlCKyurNFsjPCkHDx4kgHS/rpA1iYRSEMxMlmVOnDiRAOjv7893794Z3Ia9vT3z5cun17HR0dG0tbXl1KlTDb5OjClTptDW1jZBIWZz0Ol0sfUkx40bl2wPlCzLnD9/Pi0sLFixYkU+ePAgxfbfvHnDRo0aUaVS8YcffohtPyAggDlz5jTZfaSlN2/e0MnJiQMGDIjdduvWLTo6OrJp06ZZqofq3bt3HDx4MNVqNUuUKKH3TP+0smfPHlpYWLBjx46Jfp1nzJhBAHr3nJtSZGQk7ezsOHny5HS/tpD1iIRSEMzo3bt3bNWqFQFwwoQJqX5jd3BwoJeXl97H16hRg61atUrVtUiybt26rF+/fqrPNzVZljl58mQCYJ8+fZKdTEMqPax58uShq6srd+7cmWL70dHRHDFiRGyJmbCwMA4cOFCvUk0Zxbhx42hlZRWvWsDmzZsJIMus67xx40bmzp2b1tbWnDJlSrqNRUzKuXPnaG9vz3r16iUay+7du6lWqzlkyBAzRKdo0qQJa9asabbrC1mHSCgFwUzu3LnD0qVL087Ojhs2bDCqLUdHR+bNm1fv47/99luDjo8rIiKC1tbWJl1b2FQWLVpElUrFli1bpjiD98WLF6xXrx4lSdI7mV+5ciWtra1ZoUIFtm7dmpUrVzZV6Gnu9evXdHR05KBBg+JtHzt2LCVJSpPlM9PLgwcP2KxZMwJggwYNki0plV7u3r1LDw8Pent7Jzpe+fbt23RxcWG9evVS/AMoLc2ZM4darTZNV7sSPg0ioRQEM9i7dy9dXV2ZP39+k0yMcHZ2Zu7cufU+/q+//iKAVBVzzujjrjZt2kQrKyvWrFkzxfGB0dHRDAgIoCRJbNCgAV++fJli+2fOnGHu3LlpaWnJSpUqmSrsdBEQEEArKysGBgbGbtPpdGzQoAFdXFwyRCJmiKioKP7444+0tbWlp6cnV69enSHWLH/x4gULFy7MAgUKJDrJ5t27dyxZsiQLFizIV69emSHC/1y/fp0AuHXrVrPGIWR+IqEUhHQkyzLnzp1LtVrNOnXqmGyigLOzM3PlyqX38Xfu3CEAbtmyxeBrjR8/nk5OTmbtVUnJoUOH6OTkxDJlyiRbED7G9u3b6eLiwrx58/LUqVMpHv/s2TM6OjpSpVJx0aJFpgg5Xbx69YoODg4J6lAGBQUxX758LFu2LMPCwswUnWFOnDjBsmXLUpIkfv311xlmclFISAgrVqzI7Nmz899//02wX6fT0d/fn3Z2drxy5YoZIoxPlmXmyZOHAwcONHcoQiYnEkpBSCfh4eHs0aMHAXDQoEEmLTfj4uLCHDly6H28LMt0dXVlQECAwdfy8/Njs2bNDD4vvV26dIk5c+Zkvnz5eOvWrRSPv3fvHitUqEALCwv+8ssvKfZ0lStXjsWKFSMADhgwIENMUNLHmDFjaG1tnaDn7Ny5c7SysmKXLl0yRC9fUt68ecO+fftSkiSWK1cuyeVIzSEqKoqNGjWira1tkn+YTJgwIcOtAd+jR49MNR5YyJhEQikI6eDp06esUqUKLSwsuGTJEpO37+bmRk9PT4POadCgARs0aGDQOWFhYbSwsOCsWbMMOs9c7t+/zyJFijBbtmx6PaIPDw9n7969CYBdunRhaGhokscWKFCAw4YN4/z586nRaFi7dm29HpmbW1BQEO3t7ROdCPLHH38QAOfPn2+GyJInyzJXrVpFDw8P2tnZccaMGRmqBqgsy+zevTs1Gk2S41E3btwYOwEvI4kZAhNT/F4QUkMklIKQxk6dOsVcuXLR09OTx44dS5NrZMuWjR4eHgadM3bsWLq5uRnUGxWz3ODFixcNDdFsXrx4wYoVK9LOzo67d+/W65xly5bR2tqapUuX5s2bNxM9xs3NLbbcyv79++nm5sZ8+fJliq/NqFGjaGNjk+gY2q+//pparZZHjx41Q2SJu337NuvXr08AbNGiRYZMfEaPHk0AXLZsWaL7L1++TDs7O/r7+2e4Mk0vX76kJElcvHixuUMRMjGRUApCGlq+fDmtrKzo6+sbW1Q6LWTPnp3u7u4GnRNTMubu3bt6nzNy5Ehmy5Ytw70hpiQkJIQNGjSgVqvVe8nBixcvslChQnRwcEgwC1+WZWo0Gs6bNy922927d1mmTBna2tpy/fr1pgzf5F6+fEk7OzsOGzYswb6IiAhWqVKFOXLkSNdVWxITERHBSZMm0crKinny5OHff/9t1niSMm/ePAJIsvLBq1evWLBgQZYsWTJVdWbTg4+PD9u1a2fuMIRMTCSUgpAGoqOjOXToUAJg586dUyxhYyx3d3dmy5bNoHOePn1KAPzrr7/0PqdSpUr84osvDA0vQ4iMjGSnTp0oSRJnz56t1zlv3rxhixYtCIDDhg2LfcQaGhqaaDHqkJAQtm7dOrbIekZOvEeMGEFbW1u+ePEiwb7Hjx/Tw8ODNWrUMNvY0IMHD7J48eKxdRozalmbdevWUZIkDho0KNHe/qioKNarV48uLi4Gr4CVnkaOHEk3N7cM/T0rZGwioRQEE3v9+jXr169PlUrFGTNmpMsEBw8PD7q5uRl8Xp48efQuqvz27Vuq1eoUlzjMyHQ6HYcMGUIAHDlypF7/N7Is84cffqBaraafnx8DAwP55MmTJGfJy7LM77//PvbxbEbtkXrx4gVtbW05fPjwRPcfPHiQGo2G33zzTbrG9fLlS3bv3p0AWKlSJZ4/fz5dr2+IAwcO0NLSkm3atEkyERsyZAhVKpXewy3MZf/+/QTAM2fOmDsUIZMSCaUgmNC1a9dYqFAhOjs7c9euXel23Rw5ctDV1dXg81q2bEk/Pz+9jt26dSsB8MaNGwZfJ6P54YcfCIBffvml3hM7Dhw4QA8PD3p6esZOXkluWb9NmzbR3t6eJUuWzLA9U9999x3t7OySnEw0a9YsAuDKlSvTPBZZlrl06VK6ubnR0dGRP//8c4buLbt48SIdHR1Zu3btJNeFX758OQFwxowZ6RtcKkRERNDW1pb/+9//zB2KkEmJhFIQTGTz5s10cHBg8eLF9SpTY0o5c+aki4uLwedNnTqVtra2etWU/Pbbb5kjR44MXVLGEMuWLaNGo2HTpk31rr345MkTVq9enSqVigB44cKFZI+/cuUKCxQoQBcXF+7Zs8cUYZvU8+fPaWNjw5EjRya6X5Zltm/fnjY2NiYpwJ+Ua9eusWbNmgTAdu3axSu8nhE9ePCAOXPmZJkyZRgcHJzoMadPn84UZZjiatSoEWvXrm3uMIRMSiSUgmCkmHWkJUlis2bNEl1mLa3lypWLzs7OBp+3d+9eAuDly5dTPLZ8+fLs2LFjasLLsLZt20YbGxtWq1ZN7xVLIiMj2bJly9hl/pJKKGIEBQWxbt26VKvVnD17doZLLoYOHUp7e/skeylDQkJYqlQpFipUiK9fvzbptd+/f88xY8ZQq9WyQIECeq2rbm5BQUEsVqwY8+bNm2TR/KdPnzJXrlz08fFJ8/HTpjRr1ixaWFgkWy5LEJIiEkpBMEJoaCjbtGlDABwzZozZHtHlzp2bTk5OBp8XHBxMSZJSrI0ZFBSUZcuKHD9+nK6urixRogQfPXqk1zmrVq0iANrZ2bFw4cIp9t5FRUVx8ODBBMDu3bsn+YjUHJ49e0YbGxuOGjUqyWNu3bpFR0dHNmnSxGTf47t372bBggWp1Wo5ZsyYTLFCT1hYGKtWrUpXV1dev3490WMiIiJYtWpVenh46P39lFFcvXqVALh9+3ZzhyJkQiKhFIRUun//PsuVK0cbGxuuWbPGrLHkzZuXjo6OqTq3WLFi7NOnT7LHbNiwweASQ5nJtWvXmCdPHubJk4fXrl1L8fhffvmFkiTx2rVrLFmyJG1sbBLM+E7M77//TktLS1auXFmvJSHTy7fffkt7e/tklwKNKTM1ceJEo6719OlTtm/fngDo5+fHq1evGtVeeomKimKzZs1oY2PD48ePJ3lcr169aGFhkaHqeOpLlmXmypUr3SdiCVmDSCgFIRUOHDjAbNmy0cvLK8VxdOnBy8uLDg4OqTq3c+fOrFChQrLH9O/fn/ny5UtV+5nFo0ePWLJkSbq6uiabMJDktGnTYhP4kJAQdurUiQDYt2/fFHsfT5w4QU9PT+bMmTPDLBv49OlTWltbc8yYMckeFxAQQEmSUtWDpdPpuGDBAjo5OdHV1ZVLlizJcI//kyLLMnv27Em1Wp3ozP4YP//8MwHwt99+S8foTKt79+4sWbKkucMQMiGRUAqCgX7++WdqNBrWrFkz0Rp+5pA/f37a29un6tw5c+ZQq9UmmwiVKFGCX375ZWrDyzRevXrFqlWr0sbGhtu2bUvyuFGjRjFv3ryxn8uyzAULFtDCwoK+vr68f/9+std5/PgxK1asSEtLS/7xxx+mCt8o33zzDR0cHJIdS6rT6diwYUM6Ozvzzp07erd94cIFVq5cOfaRf0b5udHX+PHjCSDZIR8xZZa+/vrrdIzM9FauXEkAaboQg5A1iYRSEPQUERERu87z119/bbaCz4kpUKAA7ezsUnXuiRMnCCDJ3rKYAuj6PNLNCsLCwti0aVNqNJokl9Hr168fS5cunWD7yZMnmSdPHrq6uia5nnOM9+/fs2vXrgTAIUOG6DXTPi0FBgbSysqKAQEByR736tUr5s+fn2XLlk1x8kZISAiHDh1KtVrNYsWK8cCBAyaMOH0sXLiQADhp0qQkj7l//z6zZcvGmjVrZqjfC6nx4sULSpLEpUuXmjsUIZMRCaUg6OHZs2esXr06tVotf/31V3OHk0DBggVpa2ubqnPDw8Op1Wo5d+7cRPfHTED5lHosoqKi+OWXXxIAp0+fnmB/x44dWb169UTPffnyJevXr09Jkjh+/PhkJ7HIssyZM2dSrVbz888/13umeVoZOHAgHR0dU5zNff78eVpbW7Nz585JPrbevHkz8+bNSysrK06aNIkRERFpEHHa2rRpE1UqFfv27ZvkfYaGhrJ8+fLMmzcvnz9/ns4Rpg1vb2926NDB3GEImYxIKAUhBWfPnmWePHno7u7Ow4cPmzucRBUuXJg2NjapPt/b25tdunRJdF/Pnj1ZtGjRVLedWcmyzFGjRsX2IMZNDJs0acImTZokea5Op+P48eMpSRIbNGiQZEmeGLt376azszMLFSpk1kkqjx8/pqWlJcePH5/isTHF3eOuZ06SDx8+pL+/PwGwXr16/Pfff9Mq3DR15MgRWllZ0d/fP8ne45g6ndbW1jx37lz6BpiGhg8fzuzZs2fowvJCxiMSSkFIxqpVq2htbU1vb28+ePDA3OEkqWjRorS2tk71+X369GHx4sUT3VeoUKEUZ4FnZbNnz6YkSezUqVPs48zq1avrVZNzx44ddHFxYZ48eVKcgPPvv/+yRIkStLe35+bNm00Se2r079+fTk5OfPPmjV7HarVaHj16lFFRUZw5cybt7Ozo7u7OlStXZppJNx+7evUqXVxcWKNGjWTrSE6bNo0A+Ndff6VjdGkvpj5tVkqShbQnEkpBSER0dDRHjBhBAOzQoUOGr5FXvHhxWllZpfr8xYsXU5KkBEXZHz58SABmL4tkbqtWraJWq2WDBg0YEhLC0qVLs1+/fnqde+/ePfr4+NDCwoILFixINsl6+/YtmzVrRkmSOGnSJLMkZI8ePaKFhYVe5YFiai5my5aNpUqVoiRJ7Nu3r8kLoKenR48eMU+ePCxZsmSy97F9+3aqVCqOGDEi/YJLJ+Hh4bSxseG0adPMHYqQiYiEUhA+8ubNGzZq1IiSJHHatGmZopelRIkStLS0TPX5ly5dIgDu27cv3vZly5YRQKablZsWdu/eTTs7O1asWJG5c+dOthD4x8LDw9mnTx8CYOfOnZOdzKLT6Th27FgCYJs2bcyyakm/fv3o7Oyc4ipAwcHB7N69OwHQ1tY2ww4J0dfr169ZqlQp5s6dmw8fPkzyuJs3b9LR0ZGNGjUy+2SqtNKgQQPWqVPH3GEImYgKgiDEunnzJipVqoTDhw9j27ZtGDp0KCRJMndYKTI2xmLFisHW1hanTp2Kt33v3r0oXbo03NzcjGo/K6hTpw7279+PO3fu4PHjx5BlWe9zLS0tMX/+fCxbtgxr1qxBpUqVcOvWrUSPValUGD9+PNasWYPNmzejWrVqePDggaluQy/Dhw9HaGgo5s6dm+h+kli7di2KFSuGv/76C/369UNERATWrl2brnGaUnh4OJo3b45Hjx5hx44dyJUrV6LHvX37Fs2aNYOHhwdWrFgBtVqdzpGmj3r16uHQoUN4//69uUMRMgtzZ7SCkFFs376djo6OLFq0KG/cuGHucAxSunRpWlhYGNVGjRo12KpVq9jPZVlmnjx5OGjQIGPDy1KuX79OAHRyckpxycXEXLx4kYUKFaKDgwPXr1+f7LEXLlygl5cXs2XLxoMHD6Y25FTp06cPXVxcEgyDuHPnDhs2bEgAbNasWWzNzdmzZxMA//zzz3SN0xSio6PZqlUrWllZJdvLqtPp2KRJEzo4OCS59GJWceXKFQLIFOurCxmDSCiFT54sy5w2bRpVKhUbNWqk12SEjKZs2bLUarVGtfHtt9/GK9Z9+/ZtAuCmTZuMjC5rCQ4OJgDmyZOHTk5OPHToUKraiJkJPXToUEZFRSV57IsXL1izZk1qNBouWLDAmNANcv/+fWq1Wk6ZMoUkGRkZySlTptDa2pq5cuXihg0b4h0vyzI7dOhAGxsbXrx4Md3iNJYsy+zXrx9VKhU3btyY7LFjxoyhJEncunVrOkVnPrIsM0eOHPz222/NHYqQSYiEUvikhYWFxa4rPGLEiEw7Hqp8+fJGJ5Qx9SafPXtGkvz111+pUqky9QSLtPDgwQMC4Lp161izZk1aWVnx77//NrgdWZY5ffp0qtVq1qhRg4GBgUkeGxkZya+//poA2Lt373Sr6dirVy+6urpy165dLFGiBNVqNQcPHsx3794lenxoaChLly7NggULZprvm8mTJxNAisn62rVrCSA2wf4UdO3aNdEC/oKQGJFQCp+shw8f0tvbm9bW1ly1apW5wzFKhQoVqNFojGrjzp07BBC7VnG7du3o4+NjivCylIsXLxIAjx07xvfv37Nly5ZUq9VctGhRqto7ePAgPTw86OHhkeJj7V9//ZVarZY1atSITfzT0vnz56lSqQiAvr6+epWR+ffff+nk5MQmTZpk+DqGS5YsIYAUVwe6cOECbW1t2aZNm0wxSc9UVqxYQQB88uSJuUMRMgGRUAqfpMOHD9Pd3Z158uTh2bNnzR2O0Xx8fKhWq41qQ5Zlurq6MiAggLIs08PDg8OGDTNRhFnHoUOHCCC2AHl0dHTskpyTJ09OVcIRGBjIGjVqUK1Wc/r06cm2cfjwYWbPnp158uRJszqBsizzjz/+YLZs2ajVamlnZ5fijO+4tmzZQgCcMGFCmsRnCtu2baNareZXX32V7Nf75cuXzJcvH8uWLcuQkJB0jND8nj17RgBJLkEqCHGJhFL45MT08lSvXj1dennSQ8WKFY1OKEmyfv36bNiwIa9evUoAKa5H/SmKSZbi9trIsszx48cTAAcMGJCqnrmoqCgOHTqUAOjv759sAvfgwYPY3nVTF9W+ceMGa9euHVu26MSJE9RoNPzhhx8MamfcuHGUJInbtm0zaXymcOLECdrY2LBp06bJjl+Niopi7dq16ebmxnv37qVjhBlHuXLl2KlTJ3OHIWQCIqEUPhmRkZHs169fuo9DSw+VK1emSqUyup2xY8fSzc2Nc+bMoUajSXKs3Kds+fLlBJBofcgFCxZQpVKxbdu2DA8PT1X769evp4ODAwsVKpTs5Ja4439Hjhxp9OPl9+/fMyAggBYWFsyfPz+3b98eu69Hjx7Mnj27QTUxdTodGzVqRGdnZ96+fduo2Ezpxo0bdHNzY5UqVVK8n4EDB1Kj0XD//v3pFF3GM2zYMLq7u39Sj/qF1BEJpfBJiDtT9ueffzZ3OCZXtWpVkySUmzdvJgDWr1+fVatWNUFkWc+8efOo0WiSfINdt24dLSwsWKdOnQQld/R18+ZNlipVitbW1vzjjz+SPC6mQoEkSWzSpIlBj6Xj2rNnDwsXLkytVsuRI0cmWBnqzp071Gg0/PHHHw1q99WrV8yfPz/Lli1rlgLtHwsMDKSXlxeLFSvGoKCgZI+NGV85d+7cdIouY/rnn38IgBcuXDB3KEIGJxJKIcs7f/682Wr5pZfq1atTkiSj23n69CkB0M7OjmPGjDFBZFnP5MmT6ebmluwx+/fvp4ODA729vVM9rCI0NJSdO3cmAPbp0yfZHs9t27bR0dGRxYoV482bN/W+xrNnz9ixY0cCYPXq1XnlypUkj+3evTvd3d0NTgwvXLhAa2trdurUyay9XMHBwSxbtixz5MgRWzszKcePH6eFhQV79OjxyffMvX//ntbW1pw+fbq5QxEyOJFQClnamjVraGNjw3LlyqX4JpKZ+fn5mSShJElPT08C4N69e03SXlbz3XffsUCBAiked/78eXp4eLBgwYK8c+dOqq4lyzJ/+eUXWlhY0MfHJ9lxfNevX2eRIkXo5OSU4thXnU7HhQsX0tnZmS4uLly0aFGKj8xv375NtVrNGTNmGHwfMcMEzNXbFxERwc8++4yOjo4p1sh8/PgxPT09Wbly5VQPW8hqPv/8c9arV8/cYQgZnEgohSxJp9NxzJgxZl0POT3VqlXLZAll6dKlKUkS379/b5L2sppevXqxfPnyeh17584dFixYkB4eHkbNyD516hTz5s1LFxeXZJPFN2/esGHDhlSpVEnOFr906RKrVq1KAOzSpQufP3+udxxdu3alh4dHgkfi+hgwYAA1Gg2PHDli8LnG0Ol0bNeuHS0sLFIcCxkeHs5KlSoxZ86colROHD/++COtrKzE7wQhWSKhFLKc4OBgNm3alJIkccqUKZ/EI6vPPvuMplpJtWjRolSr1Zm2yHtaa9u2LWvXrq338c+ePaO3tzcdHBy4b9++VF/35cuXrF+/PiVJ4rhx45LsUYyOjubw4cMJgJ06dYpN/kJDQ/ndd99Ro9GwSJEiqYrl1q1bVKvVnDVrlsHnRkZGslq1avT09Ey2iLupDR48mJIkcc2aNckeJ8syu3XrRktLS548eTKdosscLl26RADcvXu3uUMRMjCRUApZyq1bt1i8eHE6ODjEFuj+FNStW9ckCWVUVBRtbGwIgJcvXzZBZFlPgwYN2KJFC4POefv2LevWrUsLCwuuXbs21dfW6XQcP348JUli/fr1+fLlyySP/fPPP2llZUUfHx/+/vvv9PLyoqWlJSdMmGDUo9zOnTszR44cqeqtevLkCT08PFi9enVGRkamOgZ9TZ8+nQA4Z86cFI+NWYv8999/T/O4MhtZlunp6cmhQ4eaOxQhAxMJpZBl7Nq1i87OzixUqFBs0elPxeeff04ARvfGnjhxggAoSRKXLFlimuCymMqVK7Nr164GnxcREcF27dpRkiSjKw3s2LGDrq6uzJMnT7K9adu3b6e1tTUBsEKFCgZN2EnKzZs3qVKp9ErSEnP48GFqNBoOGjTI6FiSEzNuc+TIkSkeu3fvXqrVan7zzTdpGlNm1rlzZ5YpU8bcYQgZmEgohUxPlmX+9NNPVKlUrF+/fqZZQ9iUGjRoQABG1yKcMmUKbW1tWaRIEfbt29dE0WUtxYsX58CBA1N1rk6n44ABAwiA48aNM+oPgPv379PX15cWFhb8+eef47UVHR3N2bNn097enm5ubixcuDAtLCy4ePHiVF8vro4dOzJnzpyp7umM6Q38888/TRLPx3bu3EmNRsOuXbum+DW+c+cOXV1dWadOnWSLnH/qYhL0p0+fmjsUIYMSCaWQqb1//z62tMqwYcM+2XF/jRo1IgCj3xDr1avH+vXrs3PnzqxQoYKJostacubMmeLaz8mRZZlTpkyJLbBvzPdseHg4+/btGzteMjQ0lGfOnGGFChUIgL169eKrV68YERHBr776igA4cOBAo79Prl+/TpVKxXnz5qXqfFmW2bFjR9rY2KQ469pQp0+fpp2dHRs2bJjiY/WQkBCWLl2a+fPnT7Eu5acupqTY8uXLzR2KkEGJhFLItB49ekRfX19aWVl98r/kmjRpQgBGrf4TERFBa2trTps2jXPmzKFWqxVlUxJha2vLn376yeh2Fi9eTLVaTX9/f6Nnzy5fvpw2NjZ0dXWlJEksVaoUjx49Gu8YWZZji7J/9tlnyY6/1Ef79u2ZK1euVH+PhIaGskyZMixQoIDJnir8+++/zJ49O319fVNcd1uWZbZu3Zq2tra8dOmSSa6f1ZUpU4ZdunQxdxhCBqWCIGRCx48fh4+PD548eYJDhw6hQ4cO5g7JrNRqNQBAluVUt3HixAm8f/8etWrVgo+PD6KionDx4kVThZglREdHIzQ0FI6Ojka31a1bN2zYsAHbtm1D/fr1ERwcnKp2SMLa2hp2dnZ49eoVLC0tMXr0aFSuXDnecZIkoW/fvti9ezfOnz8PX19fXL58OdXxjx49Go8fP8bixYtTdb6NjQ3WrVuHoKAgdOrUyajvXQB4/vw5Pv/8czg6OmLLli2wtbVN9vgpU6ZgzZo1+OOPP1CyZEmjrv2pqFu3Lnbt2gWS5g5FyIBEQilkOkuXLoWfnx/y5cuHU6dOoUKFCuYOyexUKuVHWafTpbqNffv2wdHREeXKlUOZMmWg1Wpx6tQpU4WYJbx9+xYA4OTkZJL2mjRpgn/++QcXLlyAn58fAgMDDTr//v37aNq0KVq2bAlfX19cvHgRjRo1Qps2bTB06FBER0cnOKdmzZo4ffo07OzsUKlSJWzYsCFVsRcrVgxt2rTBlClTEBERkao2ChQogBUrVmDr1q2YNGlSqtoAgJCQEDRq1AihoaHYuXMnsmXLluzxW7ZswejRoxEQEIAWLVqk+rqfmnr16iEwMBBXrlwxdyhCRmTuLlJB0FdUVBQHDhxIAOzRo4d4HBtH69atCSDVa0eTymo7zZo1i/3c29tbPN76yJ07dwiA//zzj0nbvXz5MnPmzMl8+fLpNRM7MjKS06ZNo42NDXPmzMl169bFTj6JmaSmVqtZo0aNJAt0h4SEsFWrVgTA8ePHp2pC15UrVyhJEhcsWGDwuXGNGzeOkiRx27ZtBp8bGRnJzz//nPb29jx79myKx1+9epX29vZs3ry50ZPYPjVhYWG0srIyyZAPIesRCaWQKbx8+ZKfffYZ1Wo1586d+0kUKzfEF198QQB88+ZNqs4PCwujhYUFZ86cGbutd+/eLF68uKlCzBLOnj1LADx16pTJ275//z6LFi3KbNmy8fTp00ked/ToUZYqVYoqlYoDBw5M8o+IgwcP0tPTk+7u7jxw4ECix8iyzIkTJxIA/f39+e7dO4Pj/uKLL5gnTx6jxu/qdDo2btyYTk5OvH37tt7nybLMTp06UavV6pXkv379moUKFWKJEiWM+uPrU1a3bl3Wr1/f3GEIGZBIKIUM79KlS8yfPz9dXV2NWmkkK2vXrh0B8NWrV6k6/59//iGAeDNuFy9eTEmSxBtvHPv27SMA3rp1K03af/nyJStWrEg7Ozvu2rUr3r5Xr16xV69elCSJFSpU4JkzZ1JsLzAwkH5+flSr1fzhhx+S/ENs48aNtLOzY6lSpQxedzxmFZWFCxcadN7HXr9+zQIFCrBMmTJ6L5X63XffEQBXrlyZ4rHR0dFs0KABnZyc0uz/71Pwww8/0NraWizDKCQgEkohQ1u/fj1tbW1ZunRp3r1719zhZFgdOnQggFTP3B05ciSzZcsW7xFgTKIgkvj/bNy4kQAMWv/aUCEhIWzYsCG1Wi1XrlxJWZa5YsUKZs+enfb29pw9e7ZBpYaioqJiEy9/f/8ke7EvX77MAgUK0NXVlXv27DEo5latWtHLy8vo1W8uXLhAa2trdurUKcWnEDNnziQAzpgxQ6+2v/vuO6pUKu7cudOoGD91Fy5cIACDv0eErE8klEKGFLPEHAC2atUqxRIgn7qYWpzPnj1L1fmVK1dm69at422Ljo6mra0tp02bZooQs4SlS5caXZ5JH5GRkbH/p0WKFIn9OXj06FGq29ywYQMdHBxYsGBBXrhwIdFjgoKCWKdOHarVas6ZM0fvoSUXL14kAP7222+pji/GihUrCIBz585N8phVq1ZRkiQOGTJErzb//PNPAuD06dONju9TJ8sy3d3d+d1335k7FCGDEQmlkOG8e/eO/v7+BMCJEyeK8ZJ66NatGwEwMDDQ4HPfvn1LtVqd6HKANWrUSJBofspmzZpFKyurNL9OeHg4x48fT7VaTQD84osvTPJzcPPmTZYuXZrW1tZctmxZosdERUXxm2++IQB++eWXek9+8/f3Z758+UyyRvfAgQOp0Wh4+PDhBPv27t1LCwsLdujQQa9JNWfPnqW1tTU7duwofpeYSMeOHVmuXDlzhyFkMCKhFDKU27dvs1SpUrSzs+PGjRvNHU6m0b17dwLg48ePDT5369atBMAbN24k2Pftt98yb968Jogwa5gwYQI9PDzS9Br79u1jkSJFqNFoOHz4cE6ePJkA2L17d5MsDRgaGhrb+9m7d+8kE8alS5fSwsKCVapU0esPlfPnzxOASZZ3jIyMZPXq1enp6Rnv2ufPn6eDgwPr1q2rVy/xs2fPmCdPHlaoUIFhYWFGxyUoli1bluZDP4TMRySUQoaxZ88euri4sECBArx8+bK5w8lUYpbVe/jwocHnDhkyhDly5Ei092bVqlXijSOOb7/9lkWKFEmTtl+8eMEuXboQAKtUqRJv9ZY//viDGo2GTZo00XvCSnJkWeYvv/xCCwsLVqhQgffu3Uv0uOPHj9PT05M5c+bUa2Z78+bNWaBAAZMkvoGBgfT09GT16tUZGRnJu3fv0tPTk+XLl9drolhkZCRr1KhBd3f3VP1cCEl78uRJmq7FLmROIqEUzE6WZc6ePZtqtZp169YVa+qmQq9evQiA9+/fN/jc8uXLs2PHjonuu337NgFw69atxoaYJXz55Zf09fU1aZuyLHPRokV0cXGhs7MzFy5cmOij3O3bt9PGxoZVq1ZN9Wz+j506dYp58+ali4sLt2/fnugxjx8/1nuJ05iySkuXLjVJfEeOHKFGo2HPnj1ZpEgR5s+fn0+fPtXr3L59+1Kr1Sb62FwwXqlSpdi1a1dzhyFkICKhFMwqPDw89nHt4MGDTdKz8Snq27cvARhc8uXVq1eUJImLFi1KdL8sy3R1dWVAQIAJosz8WrVqxXr16pmsvStXrrB69eoEwI4dO6Y4qer48eN0dXVliRIlTNbrFhQUxAYNGlCSJAYEBCQ6g/z9+/exvadDhw5NdpZ5s2bNWLBgQZP9LE+fPp0AaG9vr3e5n4ULF5qklJGQtG+//ZY5c+YU41KFWCKhFMzmyZMnrFy5Mi0tLfn777+bO5xMrX///gTAf//916DzNmzYQADJlmSqX78+GzZsaGSEWUPdunVNMkkpLCyMI0eOpFarZaFChQxaeef69evMkycPc+fOzatXrxodC6lUVZgwYQIlSeLnn3/OFy9eJDhGlmXOmDGDKpWK9evX5+vXrxNt68yZMwSQ5KQfQ0RFRbFhw4bUaDS0tLRMcnZ6XIcPH6ZWq2WfPn2Mvr6QtB07dhAAr1y5Yu5QhAxCJJSCWZw8eZI5c+akp6cnT5w4Ye5wMr2YJSn1WbYvrv79+zNfvnzJHjNmzBhmy5ZN9ESQ9PHxYY8ePYxqY8eOHcyfPz8tLCw4bty4VBWIfvToEUuWLEkXFxceP37cqHji2rVrF11dXZknT54kfy537dpFZ2dnFipUiNeuXUv0mCZNmrBw4cIG1cv8mCzL7N69OzUaDTdu3MgyZcqwQIECSSayJPnw4UO6u7uzRo0aaV7a6VMXGhpKS0vLeKtrCZ82lSnXBRcEfSxfvhzVq1dHrly5cPr0afj6+po7pExPrVYDAGRZNui8ffv2oVatWske4+vrixcvXuD+/fupji+rCA4OhpOTU6rODQwMRNu2bVG/fn14eXnh0qVLCAgIgJWVlcFt5cyZEwcPHkTx4sVRu3ZtbN++PVUxfaxu3bo4e/YsPDw8UK1aNfz8888gmeCYkydPQqvVomLFiti6dWuCdgICAnDz5k2sWrUq1bGMHTsWixcvxuLFi9GsWTOsX78er169QqdOnRL9Pn///j1atGgBCwsLrFmzBhYWFqm+tpAyGxsbVKtWDbt27TJ3KEJGYe6MVvh0REdHc8iQIQTArl27iqW7TCjm62rII9CnT58SQIoTLWKOW716tbFhZnru7u6cOHGiQedER0dz3rx5dHBwYLZs2bhs2TKT9faGhYWxadOm1Gg0Jh02Eh4ezn79+sWO7UxsYYG3b9+yWbNmlCSJU6ZMSXBPjRo1YpEiRVLVSzl//nwC4NSpU+Nt37ZtGyVJ4vjx4+Ntl2WZHTt2pLW1tV5LUgqmMXXqVNrY2Ohdq1TI2kRCKaSLV69esV69elSr1Zw1a5Z4fGpiMUvrGVJuKaYkkD61K3Pnzs2hQ4caE2KWYGlpydmzZ+t9/Llz5+jr60sA/Oqrr9KkgkFUVBR79OhBAPzhhx9M2vaKFStoY2PDkiVLJlqnVKfTccyYMQTAtm3bxitpdPLkyVSVllm3bh0lSeLAgQMT/T0xfvx4SpIUr/LAjz/+KMrYmMG5c+fE8qxCLJFQCmnuypUrLFiwIJ2dnQ2afCDob+TIkQTA8+fP631Or1699K6p2LJlS/r5+aUyuqwhPDycAPTqCXz37h0HDx5MtVrNkiVLpnnpGlmWOXr0aALgt99+q9cKMvq6fPkyCxcuTHt7e65duzbRY1avXk0bGxuWK1cuXumqBg0asFixYnr3Uh48eJCWlpb84osvkrwHnU7Hxo0b08nJif/++y937txJlUollgI0A51Ox2zZsnHEiBHmDkXIAERCKaSpv//+m/b29ixRooTBM5AF/cX0Ep0+fVrvcwoVKqT3TNj//e9/tLOzM2qSRWb37NkzAuCmTZuSPW7jxo3MnTs3ra2t+b///c8kSxHqa/bs2ZQkiR07djTpdYODg9mqVavYhDWxts+fP8+8efMye/bsPHToEEmlzBEArlq1KsVrXLp0iU5OTqxVq1aKj1Bfv37NggULsmjRonRycmKDBg0+6e9Nc2rfvj29vb3NHYaQAYiEUkgTsixz0qRJlCSJLVq00GtlCyH1AgICCEDvGfMPHz4kAK5Zs0av4/fs2fPJlwi5efMmAXD//v2J7n/w4AGbNWtGAGzYsKHBNUFN5a+//qJWq2X9+vUTHfuYWjFlgzQaDatXr84nT54kOOb58+f08/OjVqvlL7/8QpL8/PPPWaJEiWR7TR88eMCcOXOyTJkyfPPmjV7xHDt2jJIk0d7e3mSF3gXDLV26lJIkJVpqSvi0iIRSMLmQkBC2bt2aADhu3DiTPn4TEjdhwgQC4NGjR/U6PmYtXn3fBN68eUNJkrhkyRIjoszcYsYEnjt3Lt72qKgo/vjjj7S1taWnpyfXrFlj9jHC//zzD+3s7Ojr62vyN/pDhw7R09OT7u7uiSbXkZGRsRN6+vbty4MHDyY7qSsoKIjFihVj3rx5E01SE6PT6di8eXNaWVkRAOfMmWPUPQmp9+jRI717oYWsTSSUgkndvXuXZcqUoa2tLdetW2fucD4ZkyZNIgAePHhQr+O7du3K0qVLG3SNokWLsm/fvqkJL0vYvXt3giLwx48fZ5kyZShJEvv378/g4GDzBfiRM2fOMHv27CxSpEiSa3Wn1tOnT1mzZk2q1WpOmzYt0QR64cKF1Gq1rFGjBv38/FiyZMkEf1yGhYWxatWqdHV15fXr1/W+fkBAACVJ4t9//82BAwdSo9HEPmYX0l+JEiXYvXt3c4chmJlIKAWT2b9/P93c3JgvXz5evHjR3OF8Uv73v/8RAPfu3ZvisbIsM0+ePBw4cKBB1+jUqRN9fHxSGWHmt3btWgLgq1ev+ObNG/bt25eSJLF8+fI8deqUucNL1K1bt5g/f37myJGDly5dMmnbUVFRsdUFWrRokeij6kOHDjF79uz08PAggHiTeqKiotisWTNaW1vz2LFjel93/fr1BMDvv/+epNIjWr16dXp4eOjdwymY1jfffMPcuXObvWdeMC+RUApGk2WZ8+fPp0ajYe3atfny5Utzh/TJiVnveNeuXSkee/v2bb0ml3xszpw51Gq1n2zNud9++y22NI2Hhwft7Ow4c+bMDL/+fGBgIMuWLUsnJ6c06cXbuHEjHR0dWbBgwUSXRrx//z7Lly9PlUrFPHnyUKfTUZZl9urVi2q1mps3b9b7WpcuXaKtrS1bt24dL3kJDAxkjhw5WK1atXSdBCUotm3bRgBJrpwkfBpEQikYJSIigj179iQADhgwIMO/uWZVP/30EwFw+/btKR7766+/UqVSJbuEXWJiZuyePHkylVFmbiNGjKBarSYA+vv78+HDh+YOSW/BwcGsVasWraysDP5DQh+3bt1i6dKlaW1tnWhZpdDQUNapU4cA2KpVK44bN44AuGjRIr2vERQUxPz587N06dKJTjY6cuQItVotBwwYYNS9CIYLCQmhhYUFZ82aZe5QBDMSCaWQak+fPmXVqlVpYWFh0BuDYHqzZs0iAG7ZsiXFY9u3b88KFSoYfI33799To9Fw3rx5qQkx04qIiOD3339PtVptcI9aRvL+/Xu2atWKKpWKv/32m8nbDw0NZZcuXQiAvXr1SrASlizLzJ8/PwEQAEePHq1321FRUaxTpw5dXV2TnT0/d+5cvVZ/Ekyvdu3abNy4sbnDEMxIrOUtpMrZs2fh4+OD27dvY//+/ejevbu5Q/qkxazlrdPpkj2OJPbu3YvatWsbfA0rKyuUKVMGp06dSlWMmdHBgwdRtmxZBAQEoEyZMihcuDAaN25s7rBSxcrKCqtWrULv3r3Ro0cPTJ48OcE63cawsbHBkiVLsHDhQixduhTVq1fHvXv3YvdLkoQvv/wSAKDRaLB+/Xr8+++/erX93XffYd++fVizZg3y5cuX5HF9+/ZFp06d8NVXX+HChQtG3Y9gmLp162Lfvn2IjIw0dyiCmYiEUjDYypUrUbVqVXh4eOD06dOoXLmyuUP65MUklNHR0cked/36dTx9+jRVCSUA+Pj44OTJk6k6NzMJCgpC9+7d4efnB0dHR5w9exalSpWCs7OzuUMzilqtxty5czFhwgSMGjUKAwcOhCzLJmtfkiR89dVXOHLkCF6+fAlvb29s374dAHD06FFMnDgRbm5uKFiwIKKjo+Hj44Ndu3Yl2+ayZcvw008/YcaMGahVq1aK11+wYAGKFCkCf39/vH792mT3JiSvXr16CA0NxfHjx80dimAu5u4iFTKP6Ojo2FmdnTp1SvBISzCfhQsXEgD/+uuvZI+bN28eNRoN3717l6rrLFq0iJIkZdlC9bIsc+nSpXRzc6OTkxMXLFgQW+qmefPmbNiwoZkjNJ1ffvmFKpWKbdq0SZOJVkFBQWzYsCElSWKfPn3o7OzM6tWrc8eOHQTAFStWsEGDBlSpVPzpp58SnSF88uRJWlpaslu3bgbNIL5z5w6dnZ3ZsGFDUQc3neh0Orq5uXHUqFHmDkUwE5FQCnp5/fp17C//H3/8UZSHyGAWLVoUOwM5OS1btmTVqlVTfZ1Lly4lu1pMZnbt2jX6+fkRANu3b8+nT5/G21+rVi22a9fOTNGljXXr1tHS0pJ16tRJkz8SdDodhw0bRgC0tbXlrVu3KMsyq1evzvLlyzMqKip2f+fOneP9kRoYGMicOXOyUqVKqUp4t2/fTkmSOG7cOFPekpCMtm3bftKlxT514pG3kKIbN26gUqVKOHbsGLZv347BgwdDkiRzhyXEoc8YSlmWsX///lQ/7gaAYsWKwdbWNks99n7//j3GjBmD0qVL4/Hjx9i1axdWrFgBd3f3eMe9efMGjo6OZooybfj7+2Pnzp04efIkatasiefPn5u0/bdv32L79u1wc3ODpaUlateujVOnTiEgIABnz57Fjh07MHXqVKxYsQKrV6+Gn58fHj9+jIiICLRs2RKyLGPdunWwtLQ0+Nr169fH+PHjMX78eGzdutWk9yUkrl69ejh9+jRevXpl7lAEMxAJpZCsbdu2wdfXFyqVCidPnkS9evXMHZKQCI1GAyD5hPLSpUsICgpKcRxactRqNcqXL59lJubs3r0bpUqVwtSpUzF8+HBcunQJdevWTfTY4OBgODk5pW+A6cDPzw+HDh3CkydPULVqVdy5c8ck7YaHh6N58+Z49OgRDhw4gPPnzyNHjhyoVq0arl+/jipVqmD8+PEgifbt2+Pw4cN48uQJfHx88MUXX+D06dPYsGEDcuTIkeoYRo0ahcaNG6Njx464ffu2Se5LSFrdunVBEnv27DF3KIIZiIRSSBRJTJ06FY0bN4afnx+OHz+OQoUKmTssIQn69FDu3bsXlpaWRk+i8vX1zfQJ5dOnT9G+fXvUq1cPuXLlwsWLFzFhwgRYWVkleU5wcHCW66GMUbp0aRw9ehSSJKFq1ao4f/68Ue3pdDp06tQJJ06cwObNm1G8eHHkzp0bBw8eRO/evfH111/DysoKp0+fjp204+3tjVOnTsHa2hp///03OnXqhIoVKxoVh0qlwrJly+Dm5gZ/f3+EhYUZ1Z6QvFy5cqFYsWIpTrQSsiaRUAoJhIWFoUOHDhg+fDhGjRqFjRs3wsHBwdxhCcnQZ5b3vn37UKVKlWSTJn34+Pjg3r17ePHihVHtmIMsy1iwYAGKFi2KXbt2YenSpdi3bx+KFi2a7Hkks+Qj77jy5cuHI0eOIFeuXPDz88P+/ftT1Q5JDBo0COvXr4+tCBHDwsICs2fPxp9//onjx4/D2toaw4cPjy1fdOPGDdy/fx8lSpTAokWLMGjQoBQrF6TEyckJGzZswL///ouePXuatFSSkFC9evWwe/du8XX+FJlv+KaQEcUsk2ZjY8PVq1ebOxxBT+vWrSMAzp8/P9H9UVFRdHBw4MSJE42+VszSjVu3bjW6rfR04cIFVqpUiQDYvXt3g5YIDQkJ0WvSU1bw9u1b1q1blxYWFlyzZo3B50+ZMoUAuGDBgmSPu3z5MnPlykUAHDVqFO/du0c3NzfWrl2bkZGRnDt3LtVqNT/77DOTLOe6cuVKAuDs2bONbktI2pYtWwiAN27cMHcoQjoTCaUQ69ChQ8yePTvz5s3Lc+fOmTscwQCbNm0iAM6dOzfR/SdOnCAAHjlyxOhrybJMV1fXTDN7NiQkhEOGDKFarWaxYsV44MABg9t4/PhxpkyiUysiIoLt2rWjJEn8+eef9T5vyZIlBMCxY8fqdXxwcDBdXFwIgNmyZWPevHn54sWL2P379u2jq6sr8+fPz8uXLxt8Hx8bNGgQNRpNmqxpLijevXtHrVbLOXPmmDsUIZ2JR94CAGDhwoWoXbs2ihUrhlOnTqFs2bLmDkkwQEqPvPft2wdbW1v4+PgYfS1JkjJNgfOY8XsxxbzPnz+PGjVqGNxOcHAwAGTpR95xWVhYYPny5RgwYAD69OmDcePGpfgIc/v27ejRowd69OiBcePG6XUdBwcH/PHHHwCAFy9ewMXFJd5KKzVr1sSpU6dgZ2eHSpUqYePGjam9JQDAtGnTUKVKFbRu3RqBgYFGtSUkzs7ODlWrVsXu3bvNHYqQzkRC+YmLiopCv3790KtXL/Ts2RO7d+9GtmzZzB2WYKCUJuXs3bsX1atXh1arNcn1fHx8cOrUqQw7TurRo0fw9/dH06ZNUaxYMVy+fBkjR46EhYVFqtp78+YNgE8noQSUCS0zZszA//73P4wfPx59+vRJ8vvr5MmTaNWqFRo2bIiff/7ZoLJiMUsk5s6dG8+ePUP58uVx4MCB2P0xYzs///xztGjRAhMmTEj16j5arRarV6+GSqVC69atxTKBaaRu3brYu3cvoqKizB2KkJ7M3UUqmM/z589Zo0YNarVaLly40NzhCEbYvXs3AXDatGkJ9kVERNDGxibRfan1999/EwDv3btnsjZNISoqijNmzKCdnR09PDy4atUqkxTh3759OwHw4cOHJogy81m8eDHVajX9/f0TrJB148YNurm5sXLlygwNDTWo3a1bt1KSJLZt25YAuHr1ataqVYtqtZpTp06N93+n0+k4YcIEAmDLli1TvdoTSR49epRarZb9+/dPdRtC0k6dOkUAPHjwoLlDEdKRSCg/UefOnWOePHmYPXt2MZ4oC9izZw8BcMqUKQn2HTp0iAB46tQpk10vMDAwNgHIKE6ePMly5cpRkiT27duXr1+/Nlnbq1atIoAsu+SkPjZv3kxra2v6+fnxzZs3JJXvg3z58rFo0aIGT5y5fv06HRwc2KRJE0ZHR7NChQqsVq0aIyMjOXz4cAJg8+bNY68VY+PGjbSzs2Pp0qV5586dVN/PvHnzCIB//PFHqtsQEhcdHU1XV1eOGTPG3KEI6Ug88v4ErV69GlWqVIGbmxtOnz6NatWqmTskwUjJFTbfu3cvHB0dUa5cOZNdz8PDA7lz584Q9SiDg4PRv39/VKxYESRx/PhxzJs3z6RFyN+8eQOVSgU7OzuTtZnZNG7cGP/88w8uXrwIPz8/3Lx5Ew0bNkRERAR27NgBV1dXvdsKDg5Gs2bNkDNnTixfvhxqtRoBAQE4fPgwDh06hClTpmDTpk3Yt28fKlSogIsXL8ae26xZMxw7dgwhISHw8fHBvn37UnU/ffr0QefOndGzZ8/Yx+6CaajVanz22WeiHuUnRiSUnxBZljF69Gi0adMGLVq0wKFDh5A7d25zhyWYQHIJ5b59++Dn5xc7ztJUYsZRmgtJrFmzBsWKFcOSJUswffp0nDp1Cr6+via/VkxR8099ydEqVarg0KFDePnyJcqUKYN///0XO3bsQN68efVuQ6fToUOHDnj69Gm8GreNGjWCt7c3xo8fDwBo2rQpzpw5A1tbW1SqVAm///57bBslS5bEqVOnUK5cOdStWxdz5841eDyvJElYsGABihQpAn9/f7x+/dqg84Xk1atXD6dOnRJf10+ISCg/EW/fvkXz5s0xefJkTJ06FcuXL4eNjY25wxJMJCZZ/Hiywvv373H06FGj1u9Oiq+vL06fPp3s6jxp5e7du2jUqBG++OIL+Pr64urVqxg8eHBsYm1qWXmVHEMVK1YMFSpUQEREBFQqFSIiIgw6f+zYsdi+fTtWrVqFwoULx26XJAljx47FwYMHY4uqFyhQAMeOHUPbtm3RtWtX9OrVC+Hh4QAAFxcXbN++Hf3790f//v3Rs2dPg2OxtrbG+vXr8fr1a3Ts2DHVk32EhOrWrQtZlrF3715zhyKkFzM/chfSwc2bN1msWDE6Ojp+MnX0PjUxg+BHjx4db/s///xDALx48aLJrxkzbvPKlSsmbzspkZGRnDJlCq2trZk7d25u3LgxXa7bt29flilTJl2uldENHjyYkiRx0aJFrFSpEu3s7Lhr1y69zv3rr78IgFOnTk10vyzLLFeuHGvWrJlg32+//UZLS0t6e3vz7t278fYtWbKEFhYWrFKlCp8+fWrwPe3YsYOSJDEgIMDgc4WkFSlShD179jR3GEI6EQllFrdjxw46OTmxSJEivH79urnDEdLImTNnCIDDhw+Pt33UqFF0c3OjTqcz+TXfvHlDAFy6dKnJ207M4cOHWaJECarVag4ePNioWb6G6tChA/38/NLtehnV9OnT4602ExISwkaNGlGr1XLlypXJnnv+/Hna2NiwXbt2yc6837BhAwEkWoD+zJkz9PLyorOzc4I/jo8dO0ZPT0/mypUrVRPQJk6cSADcsmWLwecKievfvz+9vLxMUmlByPhEQplFybLM6dOnU6VSsWHDhglmSgpZy9mzZwmAQ4cOjbe9cuXKbN26dZpdt2jRouzbt2+atU+SQUFB7NGjBwHQ19fXLKs4NW7cmE2bNk3362Yky5cvJwCOGDEi3vbIyEh26dKFADhz5sxEz33x4gXz5s3LcuXKpVhaSJZllilThrVr1050f1BQEBs1akQAHDNmDKOjo2P3PX78mL6+vrSysuKKFSsMuj+dTscmTZrQycmJt27dMuhcIXEx5cXE1/PTIBLKLCgsLIwdO3aM7bGK+wtXyJrOnz9PAPz2229jt719+5ZqtdqgpfMM1alTJ/r4+KRJ27Isc9myZcyWLRsdHBw4b948s30vV69enZ06dTLLtTOCXbt2UavVskuXLon2NsmyzGHDhsUmnHGPiYyMZM2aNZktWzbev39fr+vFrE2fVEkznU7HSZMmUaVSsW7duvGWa3z//j07depEABw2bJhB3zNv3rxhoUKFWKpUKYaEhOh9npC4t2/fUqPRcN68eeYORUgHIqHMYh49esQKFSrQ2tqaf/75p7nDEdLJxYsXCYCDBg2K3bZt2zYCSNOhDrNnz6aFhQXDw8NN2u7169dZu3ZtAmCbNm345MkTk7ZvqFKlSn2yRbDPnDlDOzs7NmjQgJGRkcke++OPPxIAu3fvzqioKJLKY0+NRmNQkWudTsdSpUqxTp06yR63e/duurm5MXfu3Dx+/HjsdlmW+dNPP1GlUrFBgwYG1SS9dOkSbWxs2L59e/Go1gRq1KjB5s2bmzsMIR2IhDILOXr0KD08PJg7d26eOXPG3OEI6ejy5csEwAEDBsRuGzJkCHPkyJGmb4rHjx8nAJ48edIk7b1//54BAQG0sLBg/vz5uWPHDpO0a6w8efIkmPD0Kfj333+ZPXt2+vj46N1jt3z5cmo0GjZu3Jjz588ngFT1kq9Zs4YAeOTIkWSPe/jwIStVqkStVst58+bF+37fuXMnnZycWLhwYYP+sIopZD9r1iyD4xbimzhxIh0cHFL8Y0TI/ERCmUUsWrSIFhYWrFatWqpmOQqZ29WrVwkg3nhGb29vduzYMU2v+/79e5M90tqzZw8LFSpErVbLUaNGMSwszAQRmoajoyN/+OEHc4eRrp49e8aCBQuyUKFCfP78uUHn7tixg9bW1pQkiZ07d07V9XU6HUuWLMl69eqleGxERAT79+9PAGzfvn285PfWrVssVqwYHRwcDKpy8c0331Cj0YiVxIx04sQJAuDhw4fNHYqQxkQdykwuKioKAwYMwJdffomuXbtiz549cHd3N3dYQjqLKbgdU0fv9evXOHv2LGrVqpWm17WyskLp0qWNKnD+/PlzdOrUCZ999hk8PDxw/vx5fP/997C2tjZhpKknyzLevn37SdWhDAkJQaNGjfDu3Tvs2LED2bJlM+j8kiVLwtraGmq1GqdPn8ajR48MjkGlUmHMmDHYtWsXjh8/nuyxFhYWmD17NlauXIlNmzahYsWKuHHjBgCgYMGCOH78OPz8/NC4cWNMnTpVryLoU6dORZUqVdC6dWs8efLE4PgFhbe3N5ydnbF7925zhyKkMZFQZmJBQUGoX78+fv75Z/z888/45ZdfYGFhYe6wBDNQqZQf5ZiE8sCBAyCZ5gkloBQ4T01CKcsyfv31VxQtWhTbtm3D/9m777io6z+A46879hLFvbfgVhRyK7hTc+C23Csz08q0cvzUXFmaoxxZaeWeaeYGxa249869ByCy7/374+ACRQXujgP8PB+Pexjf+34/3/cRHO/7jPfnl19+YceOHZQpU8YMUaZeaGgoImLSrRzTs+joaNq2bcv58+fZuHEjxYoVS9H1ERERtGnTBkdHR3bs2EFYWBg1atTg7NmzKY6lbdu2lClTxrB7zpt07NiRgwcPEhsbS9WqVVm5ciUAWbJkYe3atXz99dcMHz6cLl268Pz589e2ZWNjw/Lly9FqtbRr146oqKgUx6+obRjfKhbuIVVS6cSJE1K0aFHJkSNHkvXalLfLxYsXBZBevXqJiMigQYOkSJEiaXLvX375RTQajYSEhCT7mpMnT0rNmjUFkG7duqV4SDUtXbt2TQDZvHmzpUMxO51OJx988IHY2NjI1q1bU3V9t27dxN7e3lAL8tatW1K+fHlxc3OTffv2pbjNJUuWCJBo0c2bhISESPv27QWQIUOGJJq/t3z5cnF0dBRPT0+5fv36G9vat2+f2NjYyMCBA1Mcu6I3b9480Wq1KVocpWQ8KqHMgFauXClOTk5SsWJF+ffffy0djpIOXL58WQDp0aOHiIiUK1dOevbsmSb3jl9hvmPHjjeeGxYWJsOGDRNra2vx8PCQgIAA8wdopOPHj6c4ocmohg0bJkCqK0T88MMPAsiff/6Z6PiTJ0+kdu3a4uDgkOLdumJiYsTDw0OaNm2aout0Op388MMPYm1tLTVr1pRbt24Znjt69KgULlxYcuXKlaw5kvGLi/74448UxaDoXb16VQBZvXq1pUNRzEgllBlIbGysjBo1SgBp3769qpOmGMS/YXft2lXu3buX5B91c4mJiREnJ6c3LlrZsGGDFClSROzs7GTcuHEmLzVkLoGBgWYvv5QeTJ8+XQCZOnVqqq7ftm2bWFlZyeeff57k88+fP5eWLVuKlZWVLFy4MEVtL1q0SAA5cOBAiuPas2eP5MuXT3LlypXoA8z9+/elbt26YmNjI/PmzXttG/E9rw4ODnLs2LEUx6CIlCxZUvr372/pMBQzUgllBhESEiKtWrUSjUYjEyZMUPXRlET+/fdfAaRLly6G/ZIT9siYW+3atV+5I8+tW7ekbdu2AkjDhg0z3K4Z69evF0Du3Llj6VDMZtmyZaLRaF6ZDL7J5cuXxc3NTRo1avTaQuLR0dHSp08fAVK0aj4mJkbc3d2lWbNmqYrv3r174uvrK1qtViZNmmR4/4yKipIBAwYIIB999NFrS9s8f/5cKleuLEWLFpVHjx6lKo632UcffSTFixe3dBiKGamEMgO4dOmSlC1bVlxcXGT9+vWWDkdJh65fvy6AdOrUSfr16yfu7u5pev9PP/30pTmbMTExMmPGDHFxcZFcuXLJ4sWLM+QHofgtB9NTGSNT8vf3F1tbW+nSpUuq9nwPDQ2VcuXKSYkSJeTx48dvPF+n08nIkSMNOzsl955//PGHAKnap1tE//P41VdfCSAtW7ZMNJ9v7ty5Ym1tLXXr1n3tfN6rV6+Km5ubNG3aNFXfq7fZ2rVrBZBLly5ZOhTFTFRCmc5t3bpVsmXLJiVKlJAzZ85YOhwlnbp586ZhV5mSJUvKhx9+mKb3jy8EHf/HOCgoSKpUqSIajUb69++frEQjvZo1a5bY2tpmyGT4TY4dOyZZsmSRBg0aSGRkZIqvj42NFT8/P3F2dpZTp06l6NqZM2eKRqOR999/P1lFr6Ojo6VkyZLSokWLFMeZ0Lp168TV1VWKFy+eaPg6MDBQcubMKYULF37tsPbmzZtFo9HIqFGjjIrjbRMcHGz2rWAVy1IJZTql0+lk2rRpotVqpXHjxhn6D7Jifrdv3xZA3n33XQFk+fLlaXr/+EVBK1askE8++US0Wq1UqFAhVat605vx48dLzpw5LR2GyV29elXy5s0rnp6eKVqhn9DYsWMFkLVr16bq+mXLlomtra00adJEQkND33j+woULBTB6J7BLly5JpUqVxN7eXn777TfD8WvXrknlypXF0dFRVqxY8crrv/nmGwHUiFEK1apVS9q0aWPpMBQzUQllOhQeHi7du3cXQIYOHfraOUmKIiJy9+5dAaRq1aqJegrTSmxsrLi4uIiLi4s4OjrKlClTMs1Wa1988YWUKFHC0mGY1IMHD8Td3V2KFSuW6p214ocwx4wZY1Qs27dvFxcXF/H29pYHDx689tzo6GgpUaKEtGzZ0qh7iujnRPbs2VMA6dOnj4SHh4uIvhJBx44dBZARI0YkObQdGxsr7733nri6uma4OcGWNGbMGHF1dTXs865kLiqhTGdu3bol77zzjtjZ2akSFUqyxa/sLlSokFSoUCFN7/3vv/9K8+bNBZBcuXJlulJWffv2lSpVqlg6DJMJCwuTatWqSc6cOeXChQupauP06dPi7Owsbdq0MclcwsOHD0uuXLnE3d39jT8/CxYsEECOHj1q9H1FRObPny92dnbi6ekpV65cERH9CNHEiRNFo9HIe++9J8HBwS9d9/TpUylZsqSUL19eVdxIpn379gkge/futXQoihmonXLSkQMHDlC1alVu3rzJrl27eP/99y0dkpJBxO+U8+DBgzTZHQf0O6pMmTKFMmXKcPToUdq1a4eIUKhQoTS5f1oJDg7ONLvkxMTE0KFDB06ePMmGDRsoWbJkitt48uQJLVu2pEiRIixcuNDws2cMT09P9uzZQ3R0NDVq1ODUqVOvPLdLly4UL16csWPHGn1fgF69erF3716ePHlClSpV+Oeff9BoNAwfPpz169ezY8cOqlevzqVLlxJd5+rqypo1a7hy5Qp9+vRJ1naOb7uqVauSNWtWtQ1jZmXpjFbRW7hwodjZ2Un16tUzdXkSxTwePXokgADy119/mf1+e/fulfLly4tWq5XBgwdLSEiIrFu3ToBM10PZpEmTTDHvS6fTSa9evcTa2lo2btyYqjZiYmKkUaNG4ubmJpcvXzZxhCJ37tyRSpUqSdasWSUwMPCV5/36668CyPHjx01278ePHxt62keOHGmYanT27FkpVaqUZMuWTbZs2fLSdfFlun744QeTxZKZtWnTRmrWrGnpMBQzUAmlhUVHR8uQIUMM2+ZllGLPSvry5MkTQ0Jpzu3NHj9+LH379jXM10y4OOLOnTuGhTmZSfXq1Q07EGVk8aV6UlpUPKGhQ4eKVqtN1baMyRUcHCy+vr5ib2//ysU+UVFRUrRoUfHz8zPpvWNjY2X8+PGi1WqlYcOGhrnIT548kSZNmohWq5WpU6e+tOL/008/FWtr69cmwYrenDlzxMrKSp4+fWrpUBQTUwmlBT169EgaNGggVlZWMnPmzExZlkRJG8HBwQJIlixZzNK+TqeTRYsWSa5cucTFxUVmzpyZ5GKxggULytChQ80Sg6WULl1ahgwZYukwjBK/deCkSZNS3UZ8Pc5p06aZLrBXiIiIkLZt24pWq5Wff/45yXPmz58vgJw4ccLk99+2bZvkzJlTChQoYKhUEBMTI0OHDjXsPx+/iEdE3zFQt25dyZ07d5puKJARXblyxajKAEr6pRJKCzl16pQUL15csmfPLtu3b7d0OEoGFxISIoAULlzY5G1fuHBBGjRoIIC0a9futX8w27RpI/Xq1TN5DJaUL18++d///mfpMFJt1apVotFoZNCgQan+0BoUFCT29vbSrVu3NPvgGxMTIx999JEA8s0337x036ioKClSpMgrd2gy1o0bN6R69epiY2OT6AP/n3/+Kfb29uLt7Z3od+Hu3buSP39+qVGjRqpqer5NihcvLgMGDLB0GIqJqYTSAtauXSvOzs5Svnx5w6pCRTHG4cOHBZCKFSuarM2IiAgZM2aM2NnZSZEiRWTDhg1vvGbixIni4uKSqUpdOTk5pUmvnDkEBgaKnZ2dtG/fPtWrse/evSsFChQQLy+vRL1yaUGn08m4ceMEkIEDB770GubNmycajSbFRdWTKzIyUgYNGmTYhSq+VuahQ4ckf/78kjdvXtm/f7/h/H379omNjY189NFHZokns/jwww8zXSkuRSWUaSo2NtZQCLhNmzbJKuSrKK/z6JHIli0i7723U2CUFC48VxYsEDl5UiS5Od2FCxfE09Mz0XzIgIAAcXd3F2traxk+fLiEhYUlq63t27cLIKdPn07Ny0l3oqKiBEhU/DqjOHnypGTNmlXq1auX6rnZkZGRUqtWLcmTJ4/cvHnTxBEm37x580Sr1Ur79u0TvZbIyEgpVKiQdOjQwaz3X7p0qTg5OUmZMmXk7NmzIqKfM1yjRg2xtbWVBQsWGM6dPXu2APL777+bNaaMbM2aNQKoDpVMRiWUaSQ0NFT8/PwEkLFjx6p9YJVUi4oSWbZMpGZNEYh/xApEikYTbTjm6iry2Wcir6u7rNPpxMfHRwCpUKGC3L59W7p27SqA1KxZU06ePJmi2J4+fSpAoj+wGdnDhw8FkNWrV1s6lBS5fv265M+fXypUqGDU4od+/fqJra1tuqgbuHr1arGzs5P69esn2tlnzpw5otFozP4h5syZM+Lh4SHOzs6GnagiIiKkV69eAsjgwYMlOjpadDqddO/eXezt7U1WKzOzefr0qVhZWcncuXMtHYpiQiqhTANXrlyRChUqiLOzs6xZs8bS4SgZ2IEDIqVK6RNGK6uECWXSDysrEY1GZNgwkaRGK5csWWJYHQ6Io6OjZMuWTX7++edUf+hxd3fPNEN+8VtKZqR5zo8fP5YyZcpI4cKFjVogEt/TNn/+fBNGZ5ydO3eKq6ureHp6Gnb4iYyMlIIFC0qnTp3Mfv+QkBDp0KGDIYGMiooSnU4nM2fOFCsrK2nQoIE8evRInj9/Lp6enlK0aFF59OiR2ePKiGrUqCFt27a1dBiKCamE0sz8/f0le/bsUqxYsRT39ihKPJ1OZNIkfXKYnETyxYdGI+LuLnL16n9tPn36VHLkyCEajcaQUFpZWRndq/LBBx+Il5eXUW2kF/FzU4OCgiwdSrI8f/5catWqJW5uboah2dQIDAwUa2trGThwoAmjM43jx49L3rx5pXjx4oZamD/99JNoNBqjXnNy6XQ6mTFjhlhbW0vNmjUNUwHi3+uLFy8up06dkqtXr4qbm5s0adIkU80pNpXRo0dL1qxZ1fcmE1EJpZkk9alVUVJr1KiUJ5EvPqytRfLkEYmvO96vX79EySQgWq3W6H2SZ8yYIba2tplipau/v78AcunSJUuH8kYxMTHSqlUrcXBwMGqI+tq1a5IzZ06pV69eut2P/erVq1KqVCnJnTu3HD16VCIiIqRAgQLSpUuXNIthz549kj9/fsmVK5f4+/uLiH40qnz58uLs7Cxr166VzZs3i0ajkZEjR6ZZXBnFnj17BEi0qEnJ2FRCaQZJzatRlNRassT4ZDJhUunhIbJu3eZESaSVlVWir40pjh6/X++hQ4dM902wkPjFAw8ePLB0KK+l0+mkX79+YmVlJevXr091O2FhYeLp6SmFCxc2FPVOr+7fvy9eXl7i4uIi/v7+MmvWLNFqtXL+/Pk0i+HevXvi6+srWq1WJk6cKLGxsRIaGipt2rQxzJf/5ptvBJB169alWVwZQXR0tGTJkkXGjRtn6VAUE1EJpYklXPmXEVeGKunLnTv6xTXQRcBO4HwSieLEuGRwfRLPXYq7DoFDhuHv9u0vSMGCBaVFixby2WefyZQpU+T333+XLVu2GL2lXnh4uFhbW8uPP/5omm+CBS1YsECAdNtTFy++eoQx8x11Op107txZHBwcMsxiktDQUGnUqJHY2trKokWLJF++fPLBBx+kaQwxMTHy1VdfCSDvvfeePHnyJFFFDz8/P2nWrJm4urrKxdetkHsLtWrVSmrXrm3pMBQTUQmlCb2qNpmipFbv3vpeRbgnkE3A54WE8YqAg4DfK3olWwg4JUooQUSrTTyf0tQ8PT2le/fu5rtBGvnhhx/E0dHR0mG81s8//yyA0T093377rQCybNkyE0WWNiIjI6Vz586i0WikXbt2otVq5cKFC2kex7p16yRr1qxSrFgxQ0K+Zs0acXZ2lrJly0rRokWlXLly8uzZszSPLb366aefxNraOtGqfSXjUgmlifzxxx9J7p6gKKn1+LGInV3C5HBeXGK4IMGxJgJZBG4mkUxuErAVGPFSQmllJTJ8uPli79evn5QtW9Z8N0gjY8aMkbx581o6jFdat26daLVa+fDDD43awWbjxo2i1Wrlyy+/NGF0aSc2NlYGDx4sgDg7O0u3bt0sEsfly5elcuXKYm9vbxihOnnypBQrVkxcXV3F3t5eOnbsqLbZjXPp0iU1HSATUQmlkWJiYuTzzz+XpPZ3VRRj/PSTfnj6vwRRJ1BTIIfAQ4H4kj8zkkgmowTcBYYK/PZSQgki2bKJmKsc6i+//CIajSbD9zx8+umn4uHhYekwkrR3715xcHCQNm3aGLVS9sKFC+Lq6irNmjXL0CtudTqdTJ48WQDRaDRpOpcyoefPnxvm0Pfu3VvCw8Pl4cOHUr9+fdFqtQLI1KlTLRJbelS0aNF0WU1ASbm3NqGMihI5elRk6VKR334TWbxYJChIJCUbSjx+/FiaNGkiWq1Wpk2bpj51KibVpUtSJYJOCdgItBPII1BV9EXNXzzvW4FcAsGvTChBxFwjgydOnBBAduzYYZ4bpJGePXtKtWrVLB3GS86ePStubm5Su3Ztoz7EBgcHS+nSpcXd3d2oAujpydy5cwWQQoUKWfQD/i+//CL29vbi6ekpV65ckejoaPnkk08MCe+2bdssFlt60q9fPylVqpSlw1BM4K1KKGNiRNatE2nUSMTG5tWrYOvWFVm+XJ90vsqZM2ekZMmSki1bNtm6dWuavQbl7VGs2KtWa38ZlyBaCRxO4vk7Ai4Cc+O+fnVCuWSJeWKPjo4WR0dHmTJlinlukEb8/PykcePGlg4jkVu3bkmhQoWkbNmy8vjx41S3ExsbKy1atJAsWbLIuXPnTBih5cX3EHp5eRlVscBYR44ckWLFiknWrFnl77//FhH9nFeNRiM2NjZy7Ngxi8WWXqxatUoA+Te+npmSYWl5S+zdCx4e8N57sH07REcnfV5MDOzeDe3bQ7FisG3by+f8/fffvPPOO9jY2HDw4EEaNGhg3uCVt9KdO696Jkfcv/mAckk8PwwoBvR+bftWVnDzZmqjez1ra2uqVKnCoUOHzHODNBIcHIyrq6ulwzB4+vQpTZo0QafTsXHjRrJly5bqtv73v//x999/s2TJEtzd3U0YpeXNmDEDNzc3jh8/Tt26dbl9+7ZF4qhcuTJBQUHUrl2b5s2bM2LECHr06MH69euJjY3F29ub/fv3WyS29MLX1xetVsvWrVstHYpipEyfUIrAiBFQqxZcvao/Fhv7+mvin799Gxo2hIED9YmmiDBx4kTee+89fH192b9/PyVKlDDvC1DeWjpdUkdvAKPRJ5I3gG9feH4/8AcwjTf9ems0b/5dMIaXlxcHDx403w3SQHpKKCMiImjVqhU3btxg06ZNFCxYMNVtrVq1inHjxjFhwgTeffddE0aZPjg6OvLVV1+h0+m4f/8+NWvW5MKFCxaJJVu2bKxdu5YJEyYwceJEGjdujLe3N2vXriU6OppatWqxZMkSi8SWHmTNmhVvb2+VUGYGlu4iNSedTqRvX+OLQWs0Iq1bR0u7dh0FkFGjRqV6n2NFSS43t6R+Ht8TcBa4ETeP0l7gcoLnawvUEbia4DElbsh7ncC1RD/XP/1kvvjj9wlP7wWyX6dkyZIydOhQS4chMTEx0rZtW7G3t5ddu3YZ1dbx48fFyclJOnTokKnnfT979kxy5swpnTp1ktKlS0uOHDnk4MGDFo1p+/btkjNnTilQoIDs27dPZs6cGfe7iQwbNixDL4oyxsiRI8XNze2tff2ZRaZOKCdONN0OI6ATa+tpsnLlSku/LOUt4ev74irv1XF/fKbFfX1L9CWDmiQ4p7DhD1TSD9dEP9e7d5sv/suXLwsg//zzj/luYma5cuWSb775xqIx6HQ6+fjjj0Wr1cqaNWuMauvhw4dStGhRqVSp0ltRD/Hbb78Va2trOXr0qFSvXl2cnJxk8+bNFo3p5s2bUqNGDbGxsZHp06dL9+7dxdraWjQajbz77ruZZnFUSuzatUsAiyf8inEyVULZpUsXsbOzk/Pnz8uJE/EFoeMfL+4mslT0u4+UiDte9xWJ5CmBtgJFBRzE1TW71K5dW9XNUsxu+PCEP8MhAgUEKgvEJPj5nB7387s87uvNAmteeHwcd853An8brtVqRcyZU+h0OsmePbv873//M99NzMzOzk5mzpxp0RgmTZokgMyePduodqKjo8XX11dy5Mjx1iyAePbsmeTIkUP69u0rYWFh0qxZM7G2tpZFixZZNK6oqChD3cy2bdtKpUqVJE+ePJIlSxZxd3fPdIuk3iQqKkpcXFxk/Pjxlg5FMUKmSijv3bsn2bJlEx8fH6lRI+Ef46R2E6kbN3ToI/odSF6VUG4QaCzwP9Fo5kmuXD9I7dq1BZC5c+da+iUrmdihQwl/DgcJaAUOvvDzGSPgKZAvLulM6mf45VXeVlYiTZqY/zU0btxYmjVrZv4bmUF4eLgA8scff1gshvitH0eNGmV0W5988olYW1tn+FJOKTV58mSxsbGRa9euSVRUlHTv3l0A+eGHHywdmixbtkycnJykRIkSkjVrVqldu7Z4eHiIq6trhu7ZT4333ntP6tata+kwFCNkqoRSRGTevOTuJnJd/qvfV/Y1CeXLj82bY6RixYri7u5u6ZerZHKVK4toNEGiLxE08BU/kwfjks1ByU4oQSSuiolZjRgxQnLlypUh5+rdvXtXwHK7ePzzzz9iZWUlvXv3Nvr799tv+p+BWbNmmSi6jCM0NFRy5Mgh/fv3FxF9z/mwYcMEkOHDh1v8Z/PMmTNSunRpsbe3F41GI0OHDpUWLVqIRqORyZMnWzy+tDJr1iyxsbGR0NBQS4eipFKmSyh1Op3kyZPc3UTiH8lPKK2tRdq2FWnevLnkzp3b0i9XyeTWrTPlPOD/Hi4uIs+fp0X86wQyZo258+fPCyA7d+5M83sfOHBAHB0dpXnz5hIdHW1UW/v37xdbW1uTJKYZ1cSJE8XGxkauX79uODZt2jQBpEePHkZ/j40VGhoqHTt2lPi5zitWrJCvv/5aAOncubM8T4tfVgu7cOGCAIZ6nUrGk+kSShGRggWTu5tIShLKZwIPBC6Jo+NUsbKyks6dO1v6pSpvgc6d9fMdTZlQajQiI0eaP/Y7d+4Y/kBmNAcOHBBAjh8/nqb3vXDhguTIkUOqVasmYWFhRrV169YtyZs3r1SvXl0iUrINWCYTEhIibm5uMmDAgETHFy1aJNbW1tK8eXOjv9fG0ul0Mn36dNFoNGJlZSWBgYGybNkycXBwEE9Pz0TJcGak0+mkcOHCMmjQIEuHoqRSpqtD+ewZ3LxZFvgcWAE8AOZifMnNz4CcQAmeP/+cJk1aM2vWLCPbVJSkvf/++9jb23PhwgVmzgR7+4TPTgI0wN/AI2AKUAf9z2dWoBqw7BUtRwLDEMnHuHEOlCv3jlnrv+XJk4cCBQpkyALnwcHBAGlah/Lu3bs0btyY7Nmz8/fff+Po6JjqtiIjI/Hz80Or1bJq1Srs7OxMGGnG4uLiwmeffcb8+fO5maCaf+fOndmwYQMBAQE0bNiQx48fWyxGjUbDoEGD2LJlCxqNBh8fH5ycnNi7dy8PHz6katWq7Nmzx2LxmZtGo6FRo0Zs2bLF0qEoqZTpEsobN/R9MG/eTSSlBgNbgYVAU0JDY4mKijJBu4rysqlTp+Lo6Ej//v05exaeP49/5iowFvADmgP7gK8BN2AEMB5wBDqiL4D+ou7AVKALGs10bt2y4t1332X37t1mey3e3t4ZssB5WieUoaGhvPvuu0RERLB582ayZ8+e6rZEhA8//JCjR4+yZs0a8ubNa8JIM6aBAwfi5OTE5MmTEx1v1KgR/v7+XLhwgdq1a3Pjxg0LRajXoEEDAgICAGjevDkbN27k4MGDeHh44OPjw/z58y0anzk1atSIc+fOWfz/gZJKlu4iNbXjx+MX3DgLlIubkzLuDUOAKVuUAyJVqjQULy+vt3ZOkmJ+8QvM3nlnQYKKBS8uMLsi8O8LP586AV8Bu7ipGvHHD8T9PkxJcCxcChcuLtWrVzfb65g4caK4uLhkuM0Afv75ZwHSpNhyZGSkNGjQQLJkyWKSIfYZM2YIIAsXLjRBdJnHuHHjxM7OTm7duvXSc+fPn5fChQtLgQIF5MyZMxaILrGlS5ca5lS2aNFC7t69Kx9++KEA8tFHH0lUVJSlQzS5R48eiUajkV9++cXSoSipkOkSykuXRN68m4jxCeXw4XMFeOvqhSlpR6fTSfXqKV1gFv+YEXfuiQTHhop+tXiw4ZiVlUijRhMEMNscrW3btgmQLv5Ip8R3330nWbJkMft9YmNjpXPnzmJraysBAQFGt+fv7y9WVlYyZMgQ44PLZJ4+fSpZs2Z95Ty9W7duSfny5cXNzU327t2bxtG97PPPPxetVivOzs5SrFgxOXr0qMyZM0esra2lXr168uDBA0uHaHLe3t7SoUMHS4ehpEKmG/I+enQNsA4YBxQAfgBsgY9Mdg+NBrJmDQf+GxZTFFPTz6maCwQDHwJDgKok72f5bty/ORIcOwqUArIYjohAWJg3AMeOHTM65qRUrVoVIMMNe6fVPt5ffPEFS5Ys4c8//6RevXpGtXX16lXatWuHj48P33774j7viqurK0OGDGHevHncuXPnpefz5ctHYGAgZcuWpX79+mzYsMECUf5n4sSJ1K1bFzs7OxwcHKhevTq2trb4+/tz+vRpvLy8OH78uEVjNLVGjRqxbds2dDqdpUNRUihTJZShoaEMGTIIR8fKwMdxR/OhTy43oV+kk1L3XzpSpEg0y5f/joODA2XKlEl1vIryJsHBqVlg9hiYD9QGEs6du/PC16DTwcWL+mO3b982ScwvcnV1xd3dPcMtzEmLhPL777/n+++/Z/r06bRr186otsLCwmjVqhWurq4sW7YMa2trE0WZuQwaNAg7O7tXJtxZs2Zl8+bNNG7cmJYtW7Jw4cI0jvA/1tbWLF26FAcHB5ycnOjUqRM9e/Zk4cKF7N69m2zZslGjRg1WrVplsRhNrWHDhjx69IijR49aOhQlhTJVQjlixAhu375N9+5z0WqtEjzzEeCJfmFNaNyxQOCbuMcD4FqCrwMTXNsPqA+MAeaj0XxDcHAFjhw5wjfffIOzs7NZX5Pydnv8GLTalCww0wFdgKfAzBeeCwdeXukbHKxfQh4eHm5EpK/n5eWV4RLKp0+fkjVrVrO1v3jxYj7//HOGDx/Oxx9//OYLXkNE6NGjB5cvX+avv/7Czc3NRFFmPlmzZmXw4MHMmTOHu3fvJnmOg4MDK1eupFevXnTv3p1vv/0W0a/2THO5cuVi5cqVHDt2DAcHB3799VcWLVpEx44d+eOPP2jRogVt27Zl1KhRmaJXr1q1ajg7O5u1+oRiJpYeczeVoKAgsbKykoEDB8q9ey/u4y3y8m4iow0Tnl9+jE5w3RKBBgK5BawFsknNmg3kr7/+svRLVt4Cw4aldIHZgLjzfn/FXGHfl447OJwWQObMmWO21zFjxgyxtbWVyMhIs93D1Fq2bGm2bSO3bt0qNjY20rVrV5Ms7Bs/frwAsnr1ahNEl/k9fvxYsmTJIp9++ulrz9PpdDJy5EgB5NNPP7XowrK5c/Xz9hcsWCBHjx6VYsWKSdasWWXdunUyYcIE0Wg00rJlSwkJCbFYjKbSvHlz8fHxsXQYSgplmoTyRf366RccmKoQNOiTVD8/S78y5W1SsWJKFpj9Ly6ZnPSK5xsIlH7peK5c+kUz5txicN++fQLIoUOHzHYPU6tXr55ZNi84cuSIODs7S5MmTUyyUnf9+vWi0Whk9OjRxgf3Fhk5cqQ4ODjI3bt333jurFmzRKPRSJcuXSz2oUin00nPnj3F3t5ejhw5Ik+ePJH33ntPAPnqq69k7dq14uLiImXLlpVLly5ZJEZTmTFjhtjY2MizZ88sHYqSApk2oQwOFsmb13Q7jGg0IlmziiTjvUdRTGL16tVxCeK0uJ/DW6IvGdQkiZ/RWXHnDn7Nz/HnktQq73Ll9L1b5tyJIzw8XKytreWnn34y2z1MrVKlSi/trGKsy5cvS+7cucXLy8skexafOXNGXFxcpFWrVhmuLJOlPXr0SFxcXOTzzz9P1vnLly8XW1tbady4scX2mw4PD5cqVapIkSJF5OHDhxIbGyuTJk0SrVYr9evXl127dknJkiUlW7ZssnXrVovEaArnzp0TQP755x9Lh6KkQKZNKEVEAgL0vYoajWkSyrVrLf2KlLdFSEiIFChQQCpVqiy2tjEJfhanxyWOyxMcWyr66RxdRF+D8lU/x/vjrp2S4Oc6QnLkKCHvvPOO2V+Tp6endO/e3ez3MZWiRYvKl19+abL27t27JyVKlJASJUrI/fv3jW7vyZMnUrJkSSlbtmymGOa0hK+//locHR3l3r17yTp/+/bt4uLiIl5eXib5f5ga//77r2TPnl0aN25sqJHq7+8vuXLlkvz588umTZukcePGotVqZdq0aRmyVrJOp5OCBQvK4MGDLR2KkgKZOqEUEVmzRp9Upnb4W6vVJ5MLFlj6lShvk0GDBolWq5WDBw9Kjx4iGk18Uhkj4CmQTyBE9MXKbQVyCvwq8McLjxeHx9uJfi7wUIG5AjXE2tpadu7cafbX1K9fPylbtqzZ72Mqbm5uMmnSJJO0FRoaKl5eXpI7d265fPmy0e3FxMRI06ZNJWvWrHLx4kUTRPh2evjwoTg7O8sXX3yR7GuOHDkiuXPnllKlSsnVq1fNF9xrbNmyRbRarYwYMcJw7ObNm1Kjhv73edq0afL5558LIN26dZPw8HCLxGmMXr16SZkyZSwdhpICmT6hFBHZvVukcOGUD39bWYnkzi2yebOlX4HyNkm4wEz/9Ys/mwkXmP0mr15cRtzzCa8Njxv6ziNgJ1mzesmmTZvS5HXNnz9fNBpNhuhN0+l0YmVlJbNnzza6raioKGnSpIk4OzvLkSNHTBCdyLBhw0Sr1cpm9eZktC+//FKcnJxSVCT80qVLUrx4ccmbN69JdjZKjYkTJwogaxMMnUVFRcngwYMFkA4dOsjPP/8sdnZ28s477yS5O1B6tmzZMgHk5s2blg5FSaa3IqEUEXn2TGToUBEnJ32P46uSy/geSXt7kQEDRJ4+tXTkytvuypUrAktEq401eupGwoeNjUhabl5z4sQJAWTHjh1pd9NUCg0NFUCWLFliVDs6nU66du0qNjY2smXLFpPEtnjxYgHku+++M0l7b7sHDx6Ik5OTDB8+PEXX3b17VypXriyurq4SGBhopuheTafTSevWrSVLlixy/vz5RM8tW7ZMnJ2dpXTp0rJ8+XLJnz+/5M2bV/bv35/mcabWw4cPRaPRyG+//WbpUJRkemsSynihoSJz54q0aSOSP3/iP7C5c4u0bCkyY4bIkyeWjlRR9PQ9ezklW7ZYky0yA5HJk9P2dURHR4ujo6NMmTIlbW+cCjdv3hRTLAoYPny4ALJo0SKTxHXkyBFxcHCQ999/P0POjUuvhg0bJs7OzvLw4cMUXRccHCy+vr5iZ2cna9asMU9wb7i/u7u7lC1b9qWFQmfPnpUyZcqIk5OTzJkzR6pXry52dnYZan/3qlWrSqdOnSwdhpJMb11C+aLwcH0v5PPnlo5EUZLWuXNnqVq1quzeLWJnZ3zlAo1GpF07kbj5/GmqVq1a0r59+7S/cQqdPq2vzblnz55UtzFjhn4/9e+//94kMd27d08KFSokVatWlefqDcuk7t+/L46OjvLVV1+l+NqIiAhp166daLVamTdvnhmie73Tp0+Lk5OTdOjQ4aUPGaGhodKpUycBZMCAAdK9e3cBZMiQIRIdHZ3msabUV199JTlz5lQVDDKItz6hVJT0TKfTSd68eWXo0KEiIrJzp4izc+oWmcVXO+jSRcQE5Q9T5dNPP5UiRYpY5uYpsGfPHgHk9OnTqbp++fLlotFo5LPPPjNJPFFRUVKnTh3JnTu33LhxwyRtKokNHTpUXFxc5NGjRym+NiYmRj766CMBZNy4cWnee7xixQoBZOrUqS89p9PpZObMmWJjYyPVqlWTcePGiZWVlTRs2DBVrzUtBQQECGCyuceKeamEUlHSsbNnzwogGzduNBy7fl2kQYP/Fo4ld4GZi4vIwoUilhwpXbJkiQAWK7mSXP/880+qFwQEBASIra2tdO7c2WQ9KwMGDBAbGxvZvXu3SdpTXnbv3j1xdHRMtHI6JXQ6nXzzzTcCyEcffWQo6ZNWhg4dKlZWVhIQEJDk8/v27ZMCBQpIzpw5ZcqUKeLm5ibFixeXU6dOpWmcKRERESFOTk4mq7agmJdKKBUlHfvpp5/E2tr6pflROp2+JJaPT8LEMUogRjQafams+KHx7NlFRowQuX3bMq8hoUuXLplkbqK5xSe+KS1gffz4ccmSJYs0aNDAZDuqzJs3TwCLDKe+bT777DPJkiWLPH78ONVtzJs3T7RarbRr104iIiJMGN3rRUdHi4+Pj+TKleuVvdj379+XBg0aiFarlc8++0zKly8vzs7O6Xor4WbNmkn9+vUtHYaSDCqhVJR0rG3btlKjRo3XnnPlisiiRSI5ciwUjWa5tG4t0q2byPffi+zYIZKets/W6XTi5uYmY8aMsXQorzV79myxsrJK0dDlv//+K3nz5hVPT0+TlUbavXu32NjYyIcffmiS9pTXu3v3rjg4OMioUaOMamfNmjVib28vvr6+EhwcbKLo3uzevXtSoEABqVat2iuT2ZiYGBkxYoQA0qRJE2nevLnFhuqT44cffhBbW1sJCwuzdCjKG6iEUlHSqdjYWMmePXuyh+AqVaokWq3WzFEZr3HjxtKsWTNLh/FakyZNEjc3t2Sf//DhQ3F3d5eiRYvKnTt3TBLDjRs3JHfu3FKnTh2L7R/9Nvr000/F1dVVnhhZ6iMwMFBcXV2lcuXKydov3FQOHDggtra2b/wQ8vfff0u2bNmkSJEi0q9fPwGkXbt26W7/7DNnzgiQZvVyldTToihKunTq1CkePXqEj49Pss7XajPGr7OXlxeHDh1CRCwdyisFBwfj6uqarHOfP39O8+bNefToEZs3byZPnjxG3z88PJzWrVtja2vLihUrsLW1NbpNJXmGDh1KZGQk06dPN6qd2rVrs2vXLu7evUvNmjW5fPmyiSJ8PW9vb2bNmsXs2bNZsGDBK89r1qwZhw8fxs3NjQULFjBgwAD++ecfatSowb///psmsSaHh4cH+fPnZ8uWLZYORXmDjPEXSFHeQv7+/tjZ2VG9evVknW9lZZWuk7R43t7e3L9/nxs3blg6lFd6+vRpshLKmJgYOnbsyIkTJ/jnn38oWbKk0fcWEfr27cvp06dZu3YtuXLlMrpNJfny5MlD//79mTZtGk+fPjWqrfLly7N3716srKyoUaMGR48eNU2Qb9CnTx969epF//79OXLkyCvPK1q0KHv27KFbt2789NNPNGzYkJCQELy8vNi5c2eaxPomGo2GRo0aqYQyA1AJpaKkU/7+/tSoUQMHB4dkna/VajNEQunl5QXAwYMHLRzJqwUHB5M1a9bXniMifPjhh2zcuJFVq1YZXpexpk2bxp9//skvv/yCp6enSdpUUuaLL74gMjKSGTNmGN1WkSJF2L17N0WKFKFu3br4+/ubIMI3mzVrFuXLl6dNmzY8evTolefZ29szd+5cfvvtNzZt2oSzszMlS5akQYMGzJ49O128pzRq1IhTp05x584dS4eivIZKKBUlHYqJiWHnzp3JHu4GfQ9lRpAnTx4KFCjAoUOHLB3KKyVnyPt///sf8+fP55dffqFJkyYmue+WLVsYOnQow4YNo1OnTiZpU0m5vHnz0rdvX6ZNm0ZwcLDR7eXMmZPt27dTo0YNmjZtyooVK0wQ5evZ29uzcuVKnj17RufOnYmNjX3t+d27d2ffvn2Eh4dz5swZmjZtyoABA+jfvz9RUVFmj/d16tevD8DWrVstGofyeiqhVJR06OjRo4SEhODr65vsazLKHErQD3tn5IRyzpw5jB07lkmTJtG1a1eT3PPSpUt07NiRxo0bM378eJO0qaTesGHDCA8PZ+bMmSZpz9nZmXXr1tGuXTs6dOjAjz/+aJJ2X6dw4cIsXbqUbdu2MXr06DeeX6lSJYKCgqhbty7r16/n3XffZcGCBdSvX5979+6ZPd5XyZkzJ56enmrYO53LOH+BFOUtEhAQgJOTU4qGUeMTSp1OZ66wTMbLy4ugoKB0G+vTp09fOeS9Zs0aPvroIwYNGsQXX3xhkvuFhobSsmVLcuTIweLFizNMb3Nmli9fPvr06cPUqVMJCQkxSZu2trb8/vvvDBkyhIEDBzJy5EizDyk3aNCACRMmMH78eP766683np81a1bWrFnDpEmT2LRpE+XLl+f8+fN4eXm9dj6muTVq1Iht27al2/cMRSWUipIu+fv7U6tWrRSt7o1PQjLCG66XlxehoaGcP3/e0qEk6VU9lLt376ZTp074+fkxbdo0NBqN0ffS6XR07dqVGzdu8Ndff71x7qaSdoYNG0ZYWBizZs0yWZtarZbvv/+eb7/9lm+++YZ+/foRExNjsvaT8sUXX9CmTRu6du3KhQsXkhXjsGHD2LZtGzdu3ECr1eLk5EStWrVYunSpWWN9lYYNG3Lv3j1Onjxpkfsrb6YSSkVJZ6Kioti1a1eKhrshY/VQVq1aFSDdDnsnlVCePn2aFi1aUL16dX7//XeTTTEYO3Ysf/31F4sWLaJ06dImaVMxjQIFCtC7d2++//57QkNDTdr20KFDWbBgAb/++ivt2rUjIiLCpO0npNFo+O2338iXLx+tW7fm2bNnybrOx8eHo0ePUqJECS5evEjZsmXp1KkTX3755RvnZJpazZo1cXBwUMPe6ZhKKBUlnTl06BDPnz9P0YIcyFg9lK6urri7u6fLld6xsbGEhIQkSihv3rxJkyZNKFSoEGvXrsXe3t4k91qzZg1jxoxh3LhxtGjRwiRtKqY1fPhwQkNDzTLnsVu3bvz1119s3ryZRo0aGV2m6HWyZMnC6tWruX79Or169Ur2UHu+fPkICAhg0KBBBAUFUbFiRb799lvee+89kyxYSi47Ozvq1aunFuakYyqhVJR0xt/fH1dXVypXrpyi6zJSDyX8V+A8vYnviYofen7y5AlNmjRBq9WycePGZBc8f5NTp07xwQcf0K5dO7766iuTtKmYXsGCBenVqxffffddsnv2UqJZs2Zs376d06dPU6dOHW7fvm3ye8QrXbo0CxYsYPny5UybNi3Z19nY2DB16lRWrFjB5cuXyZcvH7t27eKdd95J1hC6qTRs2JDAwEDCw8PT7J5K8qmEUlHSGX9/f+rWrYu1tXWKrovvoUzroajU8vb25tixYxYvSfKi+F4XV1dXwsPDadmyJXfu3GHz5s3ky5fPJPd4/PgxLVu2pHjx4vz2228mmYupmM+XX35JSEgIP/30k1nar169Ort37+bp06fUqFHDrEman58fX3zxBV988QU7duxI0bVt27YlKCiILFmyEBMTQ2hoKN7e3mzcuNE8wb6gUaNGREZGsnv37jS5n5IyKqFUlHQkPDycffv2pXi4GzLWkDfoeyijoqI4ceKEpUNJJH7Y0dnZmS5duhAUFMTff/+Nh4eHSdqPiYmhQ4cOBAcHs3btWpycnEzSrmI+hQoVokePHnz33XeEhYWZ5R6lS5dmz549ODk5UbNmTbNOBxk/fjx169alffv23Lx5M0XXuru7c+DAAVq3bs3t27fJli0bzZo1Y8qUKWZfsV6mTBny5cun5lGmUyqhVJR0ZN++fURGRqZ4QQ5kvISyUqVKWFtbp7th7/geyhkzZrBu3TqWL1+e7O0vk2PYsGEEBASwYsUKihYtarJ2FfP68ssvefLkCbNnzzbbPQoWLMiuXbsoVaoUvr6+bN682Sz3sba2ZunSpdjb29O2bVsiIyNTdL2zszN//vknP/74Izdv3iRv3rx88cUXvP/++2YdjtZoNDRs2FAllOmUSigVJR3x9/cnR44clCtXLsXXZrSE0t7envLly6fbhHLp0qXMnTuX5s2bm6zt33//nalTpzJt2rRU9UIrllOkSBG6d+/OlClTeP78udnu4+bmxtatW/Hx8aF58+YsWrTILPfJmTMnq1at4ujRowwePDjF12s0GgYMGMDu3bvRarW4uLiwatUqateuneJez5Ro1KgRJ06c4O7du2a7h5I6KqFUlHQkICCAevXqpaokTUZblAP6eZTpbaX3unXrABg5ciS9evUyWbuHDh2ib9++9OjRg4EDB5qsXSXtfPXVVzx+/Jg5c+aY9T6Ojo6sWbOGDz74gPfffz9FC2hSwsvLix9//JE5c+bw22+/paqNd955hyNHjlCtWjWioqK4dOkSVatWZc+ePSaOVq9BgwYAbNu2zSztK0YQRVHShdDQULG2tpaffvopVdd36tRJALlz546JIzOf+fPni1arldDQUEuHIiIi69evF41GI1ZWVqLT6UzW7p07dyR//vxSrVo1iYiIMFm7Strr2bOn5M6dW8LCwsx+L51OJ8OHDxdAvvjiC5P+TCbUu3dvsbOzk6CgoFS3ERMTI6NGjRJA3NzcxMbGRn7++WcTRvmfSpUqyQcffGCWtpXUUz2UipJO7N69m5iYmFQPhWbEHkovLy90Op1Ft3SLt3//ftq3b4+HhwfZs2c32crryMhI/Pz80Ol0rFq1Cjs7O5O0q1jG119/zcOHD5k3b57Z76XRaJg4cSLTpk3j22+/pUePHkRHR5v8PjNnzqR8+fL4+fnx6NGjVLVhZWXFmDFj2LBhAzqdDnt7e/r06cPHH39s8pgbNWrE1q1bzb4ISEkZlVAqSjrh7+9P3rx5cXd3T9X18WWGMlJCWaZMGRwdHS0+7H3u3DmaNWtGlSpVaNKkiclqTYoIAwcOJCgoiDVr1pis7JBiOcWKFeODDz5g8uTJaVYPcfDgwSxevJjFixfTunVrk8/htLe3Z9WqVYSFhdGpUyejSo+9++67HD16lFKlSmFtbc3s2bNp3LgxDx8+NFm8DRs25O7du5w6dcpkbSrGUwmloqQT/v7++Pr6prpnLKMtygF9Euzp6WnRhTm3b9+mSZMm5M2bl3Xr1vHs2TOTJZSzZ89m/vz5zJ07l3feecckbSqW9/XXX/PgwQN+/vnnNLtnp06d+Pvvv9mxYwcNGjRIdU/iqxQqVIilS5eyfft2Ro0aZVRbRYoUYffu3fTs2ZPY2Fj27dtH1apVTVYirFatWtjb26vV3umMSigVJR148uQJR48eNWrlb0ZMKMGyO+YEBwfTtGlTYmNj2bhxI9myZSM4ONiwS44xdu7cySeffMInn3xC9+7djW5PST9KlChBly5dmDx5sln34H5Ro0aNCAgI4OLFi9SuXZsbN26YtP369eszceJEJkyYwNq1a41qy97enrlz57JgwQJEhPv371OtWjVWrVpldJz29vbUrVtXbcOYzqiEUlHSgcDAQHQ6XarqT8bLqAmlt7c3V69e5cGDB2l638jISFq1asX169fZtGkTBQsWBPRJprE9lNeuXaNt27bUqVOH7777zhThKunMiBEjuHv3LvPnz0/T+3p5ebFnzx7Cw8OpUaMGZ86cMWn7Q4cOxc/Pj65du3L+/Hmj2+vWrRsHDhwgT548xMTE0LZtW0aPHm30+1TDhg3ZuXNnmib0yuuphFJR0gF/f3+KFCliVKHrjLb1YjwvLy8AgoKC0uyeOp2Orl27sm/fPtavX0/ZsmUNzz19+tSohPL58+e0atUKFxcXli9fnuItNJWMoWTJknTu3JlJkyaluDC4sUqVKsWePXtwc3OjVq1a7N2712RtazQafvvtN/Lnz0+bNm1Msn95xYoVOXLkCE2bNgVg7NixtGnThtDQ0FS32ahRIyIiItQ2jOmISigVJR0ICAgwutB1RlyUA/pFDm5ubmk27C0iDBkyhJUrV7JkyRJq1aqV6HljhrxFhJ49e3LhwgXWrl1L9uzZTRCxkl6NGDGCO3fu8Msvv6T5vfPly8fOnTspX748DRo04O+//zZZ2y4uLqxZs4br16/Ts2dPk6ymzpo1K2vXrmXy5MloNBr+/vtvvLy8uHz5cqraK1euHHny5FHD3umISigVxcIePHjAyZMnjRruhow75K3RaPDy8kqzld5TpkxhxowZ/Pjjj7Ru3fql540Z8p48eTLLli1j4cKFVKhQwdhQlXTO3d2dTp06MXHixDTvpQR9krZ582aaNGlCq1atWLBggcna9vDwYMGCBaxYsYKpU6eapE2NRsMXX3yBv78/WbNm5dKlS1SuXDlVRcrVNozpj0ooFcXCduzYAWB0D2VGTSjhv4U55q4r9/vvvzNs2DBGjhxJ//79kzwntUPe//zzD1999RUjRoygbdu2xoaqZBAjRozg1q1bqd5pxlj29vasWLGCXr160aNHDyZPnmyy3yM/Pz+GDRtm2H/eVOrVq8eJEyfw8vLi2bNnNG7cmB9++CHFcTdq1Ihjx45x//59k8WmGMFiJdUVRRERkf79+0upUqWMbid+R40TJ06YIKq09ddffwkg165dM9s9Nm7cKNbW1tKrV69X7jgSFRUlgCxYsCBFbZ87d06yZMkiLVq0kNjYWFOEq2QgnTp1kkKFCklkZKTFYtDpdIadagYPHmyyn8Po6GipX7++5MyZU65fv26SNuNFRUXJ4MGDBRBAunTpkqKdpO7cuSOALFq0yKRxKamjeigVxcLi608aK76HMiYmxui20lr8whxzDXsfOnSItm3b0qRJE+bMmfPKWp/BwcEAKeqhDA4OpmXLluTPn58///wzVfuwKxnbyJEjuXHjhkmHnFNKo9EwZswYfvzxR6ZPn84HH3xAVFSU0e1aW1uzZMkS7O3tadu2rUmH9m1sbJg2bRorVqzA3t6exYsX884773Dnzp1kXZ8nTx4qVKighr3TCfXOpygWdOvWLS5cuGD0cDf8tyjHHFuzmVvevHkpUKCAWRbmXLp0iWbNmlG+fHmWLVv22lXXKU0oY2Nj6dKlC3fv3mXt2rVkyZLFJDErGUvp0qVp3749EyZMMEkSZ4wBAwawfPlyVq5cSYsWLUyySjtnzpysWrWKY8eO8cknn5ggysTatm3LsWPHKFq0KCdOnKBs2bLJ/nDZqFEjNm06zMaNwtSpMG4cTJoEy5fD5cugdmdMQ5buIlWUt9kff/whgNy7d8/otsaOHSuA7N271wSRpb3WrVuLj4+PSdu8e/euFCtWTNzd3eXhw4dvPD8oKEgAOXz4cLLa/+qrr0Sr1crGjRuNDVXJ4E6dOiUajUZ+/vlnS4ciIiL+/v7i4uIiXl5ecv/+fZO0+fPPPwsgv/76q0nae9GzZ8+kTZs2AoiVlZX88ssvrzz3+XORBQtESpYMFn3aKGJlJWJjI2JtLYZjefKIjB0rcvu2WUJWElA9lIpiQf7+/pQvX55cuXIZ3VZG7qEEfYHzoKAgky0qCg0N5d133yU8PJzNmzcnq4RPfA9lcsoGLV++nAkTJjBx4kSaNGlibLhKBle2bFnatm3L+PHj08XvoI+PDzt37uT69evUrFmTf//91+g2e/fuTZ8+ffjwww85fPiw8UG+wMnJiZUrVzJ9+nR0Oh29evWib9++L03j2b4dSpaE7t3h8uX/RgViYyE6GhKefvcu/O9/UKQITJumP0cxD5VQKooFmaL+ZLz4hDKjFTaP5+XlRWhoqEl254iKisLPz49Lly6xceNGChcunKzrkjvkfezYMXr06EGnTp0YOnSo0fEqmcPIkSP5999/+f333y0dCgCVK1dm79696HQ6atSoYZK9tGfOnEmFChVo06YNDx8+NEGUiWk0GgYNGsTevXvJmjUrP//8M9WqVePJkyfodPDZZ9CgAcRPs0zO50+dDqKi4NNPoW5dePzY5GErqIRSUSzm6tWr/PvvvyZZkAP/LcpJD70jqVGlShUAo+dR6nQ6evbsyc6dO1m7di0VK1ZM9rVPnz4FeO1cyAcPHtCqVSvc3d2ZP3/+Kxf4KG+f8uXL4+fnl256KUG/ccCePXvImzcvderUITAw0Kj27OzsWLVqFc+fP6dTp05m+wBbrVo1Ll68SJUqVTh8+DAlSpSkXbvHxJfETO1Axv79ULu2SirNQSWUimIhAQEBaLVa6tata5L24nsoM+Iqb9APM7u7uxudUA4bNozFixfzxx9/pLj3Nzg4GCcnJ2xsbJJ8Pjo6mvbt2/P8+XPWrl2Lo6OjUbEqmc+oUaO4evUqf/75p6VDMcidOzcBAQFUrVqVRo0asWbNGqPaK1iwIMuWLcPf35+RI0eaKMqX5ciRgwMHDvDxxx/z+HE3Vq92M7rN2Fg4fx7at1cLdkxNJZSKYiH+/v5Urlw51dv8vSgjlw2KZ+yOOVOnTuW7775j+vTptG/fPsXXv2mXnE8//ZTdu3ezatUqChUqlOo4lcyrQoUKtG7dmvHjx6er38UsWbKwYcMGWrZsSdu2bZk3b55R7fn6+jJx4kQmTpzI2rVrTRNkAu+//z729vZcvnyZAQNmYG09JcGzkwANEL/d5DLgfaBk3PF6r207NvYI27e/h7OzG46OjpQrV44ZM2aY/DW8bVRCqSgWICImqz8ZL6P3UII+oTx27FiqSq8sWbKEzz77jOHDh/Pxxx+n6v6v2yXnl19+YdasWcycOZPatWunqn3l7TBq1CguX77MokWLLB1KInZ2dixZsoQBAwbQr18/xo0bZ9SuOkOHDsXPz4+uXbuaZO5zQlOnTsXR0ZH+/fujr1QUn65cBcYCfkDzuGOzgb+AgkC2N7S8BagO3CcmZiSTJ0+nefPm3Lx506Txv5UsvcxcUd5G586dE0D++ecfk7U5f/58AWT58uUmazOt7du3TwAJCgpK0XXbtm0TGxsb6dq16yt3wUmOHj16SLVq1V46vnfvXrGxsZG+ffumum3l7dKyZUspUaKEREdHWzqUl+h0Ohk/frwAMmDAAImJiUl1WyEhIVK6dGkpXbq0hISEmDBKkXnz5sXtorPAUAYImghkEbiZ4Nh1gdi4/y4rUDfBcwkfwQK5BVoLxIpGI/LTTyYN+a2meigVxQL8/f2xtramVq1aJmszMwx5V6pUCWtr6xQNex89epTWrVtTv359oxfJBAcHvzQF4datW7Rp0wZvb29mzpyZ6raVt8uoUaO4dOkSS5YssXQoL9FoNHz11Vf8/PPPzJkzh44dO6Z6BxwXFxdWr17NzZs36dmzp8n2EQd9maICBWoCnwOPgKXAJuAbIH+CMwuSvAHXxcA9YDygRSSM2bNNU6ZMUUPeimIR/v7+eHt74+LiYrI24xeSpJfVpalhb29P+fLlk70w5+rVqzRt2hR3d3dWrFjxysU0yfXiHMqIiAhat26NtbU1q1atwtbW1qj2lbeHp6cnLVq04Jtvvkm3pbx69+7N6tWr+fvvv2natCkhISGpasfDw4MFCxawcuVKvv/+e5PFp9FoyJlzLhAMfAgMAaoCH6WyxW1AFuAW4A44c/JkFnr3/pCIiAhThPxWUwmloqQxnU7Hjh07TFZ/Ml58D2V6/eOVXN7e3slKKB88eEDjxo1xcXFhw4YNODs7G33vhHMoRYT+/ftz8uRJ1qxZQ+7cuY1uX3m7jB49mgsXLrB06VJLh/JKLVu2ZMuWLRw9epS6dety9+7dVLXTpk0bhg8fzrBhw/D39zdJbDodnD9fFn0P5QrgATCX1KcuF4EYoCXQGFgF9OSXX+bQo0cPE0T8dlMJpaKksVOnTvHw4UOTLsiB/3ooM/KQN+gX5pw5c+a1exA/e/aMZs2aERwczObNm02y0xAkHvKePn06CxcuZP78+VStWtUk7StvlypVqtCsWTPGjRuXrj/o1a5dm8DAQO7fv0/NmjW5dOlSqtr55ptv8PX1pUOHDty4ccPouEJC4PlzgBxxR/IB5Yxo8RnwHOgKzADaADNo0KAfS5cu5eLFi8aE+9ZTCaWipDF/f3/s7OyoXr26SdvN6DvlxPPy8kKn03HkyJEkn4+vBXn27Fk2btxIsWLFTHbv+CHv7du38/nnn/P555/TpUsXk7WvvH1Gjx7N+fPnWb58uaVDea3y5cuzd+9ebGxsqFmz5it//17HysqKJUuW4OjoSNu2bVM9LzOe/q3sBjAafSJ5A/jWiBYd4v7tlOhotWqdAdi3b58RbSsqoVSUNBYQEED16tVxcHB488kpkBkW5QCUKVMGR0fHJIe9RYQ+ffqwbds2Vq9ejaenp8nuKyI8ffrUkLDWr1+fSZMmmax95e3k5eVF06ZN030vJUDhwoXZvXs3RYoUoW7dumzfvj3FbeTIkYNVq1Zx/PhxBg0aZFQ8Tk4AA+O+2gi0Q7+g5koqW8wX92/i6Sv58ulHOJ48eZLKdhVQCaWipKnY2Fh27txp8uFuyDxD3tbW1nh6eia50nvEiBEsXLiQBQsW0LBhQ5PeNyIigujoaObPn4+bmxtLly41JOmKYozRo0dz9uxZVq5caelQ3ihHjhz4+/tTq1YtmjZtmqqe1apVq/Ljjz8yb948fv3111THsnHjGmAdMA4oAPwA2JL6RTlV4v69leho1qy3AciZM2cq21VAJZSKkqaOHj1KcHCwyRfkQOYZ8gZ9r86LPZSzZs1iwoQJfP/993Tu3Nnk94zvnXj48CFr164lW7Y3FUhWlOR55513aNy4MePGjUOX2k2o05CTkxPr1q2jQ4cOdOzYkVmzZqW4jV69etG3b18GDBhAUFBQiq8PDQ1l0KBBZMtWGa02fqOCfOiTy03oF+mkVPzuWb8Yjri6wvr187G2tqZevXqpaFOJpxJKRUlD/v7+ODo64u3tbfK2M8NOOfG8vb25evUqDx8+BGDlypUMGjSITz/9lE8//dQs94wf3h45ciRly5Y1yz2Ut9fo0aM5ffo0q1atsnQoyWJjY8PChQv59NNP+fjjjxk5cmSKa0zOmDGDihUr4ufnZ/hdTq4RI0Zw+/Zthg+fi06XcKTgI8ATGAyExh0LRF+b8hv0K8GvJfg6MMG1lYGe6OtRdkCr/Qk3t/YsWbKEoUOHki9fPhQjWLSsuqK8ZRo3biyNGzc2S9t79uwRQMaPH2+W9tPSpUuXDDsJBQQEiK2trXTq1EliY2PNcr+1a9fG7ciBHD9+3Cz3UJSGDRtKuXLlzPZzbC5TpkwRQHr37p3inX+uX78uOXPmlAYNGiR7R56goCCxsrKSgQMHSnS0SK5cL+54c1BAKzAo7uvRht/flx+jX7g2SuB/AoUFbKRgwRIybdq0VHxXlBephFJR0khkZKQ4OTnJpEmTzNL+/v37BZAxY8aYpf20pNPpxM3NTT788EPJkiWLNGjQQCIjI81yr9OnT4uzs7PUrFlTALl27ZpZ7qMou3fvFkBWrlxp6VBSbOHChWJlZSUtW7aU58+fp+ja7du3i1arleHDh6fq3jNnJrWNonEPKyuRZs1SFY7yCmrIW1HSyKFDhwgLCzPLghzIPItyQL9DRrly5fj1118pXry42XapefLkCS1btqRIkSL069cPINFOOYpiSjVr1qRBgwaMHTs2Q8ylTKhr166sW7eOLVu20KhRoxStiPb19WXSpElMmjSJNWvWpPjeAwZAzZoQN6vHJBwdYd4807WnqDmUipJm/P39cXV1pXLlymZpP7PslAPw6NEjTp8+TXR0NBs2bCBLliwmv0dsbCwdO3bk8ePH/PXXX0RERKDRaEy6HaaivGj06NGcOHGCv/76y9KhpNi7776Lv78/Z86coU6dOty+fTvZ137++ee0bduWbt26ce7cuRTdV6uFP/+ErFnBFIUXNBpYuBDUlEnTUgmloqSRgIAA6tSpY1g8Y2rxPXgZPaF8/vw5LVq0ICoqCp1OZ7a9yb/88ku2bdvGsmXLKFasGMHBwWTJkgWtVr0tKuZTq1YtfH19GTt2bIoXuaQH1apVY/fu3QQHB1OjRg3Onz+frOs0Gg2//vorBQoUoHXr1oSGhr75ogSKFIEdO8DNLfU9lVZW+uT099+hdevUtaG8mnrnVJQ0EBERwd69e8023A2Zo2xQTEwMnTp14vjx4yxbtgwgWft6p9SiRYuYMmUK33//PQ0aNAD+2yVHUcxt9OjRHDt2jHXr1lk6lFQpXbo0e/fuxcnJiZo1ayZZMzYpLi4urFmzhlu3btGjR48UJ9Rly8KRIxD/NqrRJP9arRby54eAAHj//RTdVkkmlVAqShrYt28fkZGRZk0oM/qQt4gwYMAANmzYwMqVK2natCkFChRI9h+r5Dp8+DC9e/emW7dufPLJJ4bjT58+VQmlkibq1KlDvXr1GDNmTIbspQQoUKAAu3btwsPDAx8fHzZt2pSs69zd3Vm4cCGrVq3iu+++S8V9YdMm/ZB1yZL6Y6/qsYybVk7WrPDll3DmDNSpk+JbKsmkEkpFSQP+/v5kz56dcuXKme0eGT2hHDNmDD///DO//PILTZs2BZIucG6Me/fu0apVK8qXL8+cOXPQJOjiCA4OJmvWrCa7l6K8zujRozl69Ch///23pUNJNTc3N7Zs2UL9+vVp0aIFf/75Z7Kua926NcOHD2f48OH4+/un+L4aDXTtCufO6YfBhwyBunUhe3b9YpssWaBSJejZExYvhjt34Jtv4rdyVMzFPJO5FEVJxN/fHx8fH7POz4tvOyOu8p47dy5jxoxh4sSJdOvWzXDcy8uLiRMnotPpjP7eRUVF0bZtW2JiYlizZg329vaJnldD3kpaqlevHnXq1GHMmDE0b9480YebjMTR0ZHVq1fTr18/PvjgA+7fv5+szQe++eYbgoKC6NChA0eOHKFgwYIpvrdGo08k69ZNTeSKqamEUlFM5dYt/cflw4fh/HmIiAB7e6KKFaPY/v3UHzfOrLfPqD2Ua9euZcCAAXz88ccMGzYs0XPe3t6EhoZy/vx5SpcubdR9Bg0axMGDB9mxYwf58+d/6fmnT5+m6o+aoqTW6NGjqV+/Pv/88w/NmjWzdDipZm1tzfz588mdOzefffYZd+/eZfLkya9Nkq2srFiyZAlVqlTBz8+PwMDAlz7kKRmMZctgKkomEBgo0rKliFarr5hrY5Oogq7O2lr/r1Yr0rq1yO7dZgnjzp07AkifPn3M0r457N69W+zt7aVdu3ZJ7qLx5MkTAWThwoVG3Wf27NkCyPz58195TsWKFWXAgAFG3UdRUkKn00mtWrXEy8tLdDqdpcMxiR9++EEA6datm0RFRb3x/KCgILGzs8tQ71tK0tQcSkVJrZAQ6NtXP8t7wwaIL1T8QpkbTdwQtEang/XroVYt6N8fUlg2400yWg/lmTNnaNGiBdWqVeP33383xJ9Q1qxZKVWqlFHzKHft2sXHH3/MwIED6dWr1yvPU3MolbSm0WgYPXo0hw4dSvailvTuk08+YcmSJSxevJhWrVoRFhb22vOrVKnCTz/9ZJg/rWRcKqFUlNT491+oWBF+/VX/dXLnLcaf9/PP+lnj166ZLKSMlFDevHmTJk2aULBgQdauXfvaoS5vb+9UJ5TXr1/Hz8+PWrVqMXXq1Neeq+ZQKpZQv359atSokaFXfL+oY8eObNiwgZ07d9KgQQMePXr02vN79uxJ3759+eijjwgKCkqjKBVTUwmloqTUzZv6fcBu3oTUJm86HVy/DrVrQwp2m3idjLIo58mTJzRt2hSNRsPGjRvfmMR5eXlx9OhRoqKiUnSf58+f07p1axwdHVm+fLlha8qkiIhKKBWLiO+lPHDgAJs3b7Z0OCbTsGFDduzYweXLl6lVqxbXr19/7fkzZsygYsWKtGnThgcPHqRRlIopqYRSUVJCp4MOHeD+/eT3Sr5KTIy+nkXHjv8NlxshvocyPe8RHBERQcuWLbl9+zabN28mXzL2PvPy8iIqKoqTJ08m+z4iQp8+fTh79ixr164lZ86crz3/2bNn6HQ6NeStWETDhg2pVq1apuqlBKhatSp79uwhIiKCGjVqcPr06Veea2dnx6pVq4iIiKBTp07p/oOx8jKVUCrKG7z//vvY29tz4cIFmDUL9u41JJOTAA0QX0luGfA+UDLueL3XtHsR6BgTQ4Fdu3C0t8fDw4OxY8fy/PnzVMUZ30OZXoe8Y2Nj6dKlC0FBQfz99994eHgk67pKlSphbW2domHv7777jsWLF7NgwQIqVar0xvODg4MBVA+lYhHxvZT79+9n69atlg7HpEqWLMnevXvJnj07tWrVYs+ePa88t0CBAixbtoyAgABGjBiRhlEqJmHZNUGKkv7du3dPsmXLJj516oi4uBhWb18BcQDxS7Ciuy6IM4gPSLa4ryWJx3WQrCCFQSaCzHVwkO4ffCCAvPfee6mKMzw8XADx8/Mz8XfAeDqdTgYMGCBarVbWrVuX4usrV64sPXr0SNa5GzduFK1WK19++WWy2z958qQAsnfv3hTHpiimoNPpxNvbW2rUqJFpVnwn9PTpU6lbt67Y29u/8T1gypQpAsiqVavSKDrFFFRCqSjJMG/ePAFkQYKksAlIFpCbLySKsXH/XfY1CeV4EEBOJTz+++/StWtXAeTx48cpjjEqKkoAad26tRm+A8YZP368APLzzz+n6vq+fftKuXLl3njehQsXxNXVVZo1a5ZkGaJX2b17twBy+vTpVMWnKKawYcMGAWTr1q2WDsUswsPDpU2bNmJlZSW//vrrK8/T6XTSrl07cXZ2lrNnz6ZhhIox1JC3oiRD7969qZklC58Dj4ClwCbgGyBhieyCJG8eSUjcv7njD2i1sHAhefPmRavVYmtrm+IY0+uQ92+//cbXX3/N2LFj6d27d6ra8Pb25syZMzx79uyV54SEhNCyZUvy5MnDokWLkixD9CrxQ95qDqViSU2bNqVq1aqZbi5lPHt7e5YvX07v3r3p2bMnkyZNSvJ1ajQafvnlFwoVKkTr1q0JNXGJNcU8VEKpKMmgEWFuVBTBwIfAEKAq8FEq26sX928v4BhwQ6dj2Z49zJ49m0GDBuGUik1n02NCuWHDBvr06UP//v2NmhPl5eWFTqfjyJEjST6v0+l4//33uXXrFn/99VeK50I+ffoUUHMoFcuKn0u5e/duAgICLB2OWVhZWTF79mxGjx7Nl19+yZAhQ5JcSOji4sLq1au5desWPXr0yJQJdqZj4R5SRckYLl4UAfkybqjaCuTwK4azJRlD3gIyLm4OJgkeX3/0kVFhAtK0aVMTvWjj7N+/XxwcHKRVq1YpGn5OSnR0tDg4OMh3332X5PMjR44UjUYjGzZsSFX7P/30k1hZWWXKuWtKxqLT6aRKlSpSp04dS4didrNnzxaNRiOdOnWSyMjIJM9Zs2aNADJ58uQ0jk5JKdVDqSjJ8fAhADnivswHlDOyySJAHWAesAroCUz46SdmzZplVLvpoYfy/PnzNGvWDE9PTxYvXpyi4eekWFtbU6VKlSRXeq9atYpx48YxYcIE3n333VS1H79Lzuv2HlaUtKDRaBg1ahSBgYHs2LHD0uGYVf/+/VmxYgWrVq2iefPmSQ5tt2rVii+//JIvv/yS7du3WyBKJblUQqkoyaHRcAMYjT6RvAF8a0RzS4G+wHygD9AG+AXo1rw5w4YNe+POEq9j6TqUt2/fpnHjxuTOnZt169bh4OBgkna9vLw4ePBgomMnTpygW7dudOjQgWHDhqW67adPn6rhbiXdaNGiBZUrV2bMmDGWDsXs/Pz82Lx5MwcOHMDX15f79++/dM64ceOoX78+HTt2fGOBdMVyVEKpKMmRMycD4/5zI9AOGA9cSWVzPwGVgQIvHH+vWTOeP3/O0aNHU9WuRqOxaEIZHBzMu+++S0xMDJs2bcLNzc1kbXt5eXH16lUexvUWP3r0iFatWlGyZEl++eUXo3oX1S45SnoS30u5Y8cOAgMDLR2O2dWrV4+dO3dy48YNatWqxdWrVxM9b2VlxZIlS3BycqJt27ZERERYKFLldVRCqSjJsObYMdYB49AngT8AtqR+Uc494KWB6SxZiI5bZZzaXSI0Go3FhrwjIyNp06YN165dY/PmzRQsWNCk7Xt7ewMQFBRETEwM7du3JzQ0lLVr16ZqEVNC8UPeipJetGzZkooVK74VvZSg38Bg7969iAg1atTg+PHjiZ7Pnj07q1ev5sSJE3z88ccWilJ5HZVQKsobhIaGMuiTT6js7MzHcb1g+dAnl5uAFalosxRwFLgQf0CrhXfeYcnSpWi1WipUqJDqeC3RQ6nT6ejWrRt79uxh3bp1lC1b1uT3KFasGG5ubhw8eJDPP/+cwMBAVq5cSeHChY1uW/VQKulN/Ipvf39/du/ebelw0kSxYsXYs2cP+fPnp06dOuzcuTPR856ensyePZv58+czf/58AMLCwpg3b57qtUwPLL0qSFHSu0GDBolWq5WDo0cnWqUdA+IJkg8kJO7YzrjV2+NAcoEUSfD1zgTX7oxbKZ4LZCzIjyBNK1YUQHr37p3qWK2srKRGjRqme/HJoNPp5JNPPhGtViurV682670aNWokFeO+T7NmzTJZuzVq1JBu3bqZrD1FMYXY2FipUKGCNGjQwNKhpKmQkBCpX7++2NnZJblbTr9+/cTW1lZWrlwpHh4eAsjixYstEKmSkEooFeU1goKCxMrKSgYOHCgSHi6SNWuipPIgiBZkUNzXo18oA5TwMfqFskEHQJqC5AGxASlVsqSMHz9eoqOjUx2vlZWVVKtWzYTfgTf79ttvBZDZs2eb/V49evQQQHr16mXSEj9ly5aVQYMGmaw9RTGVlStXCiB79uyxdChpKiIiQjp06CBarVbmzJnz0nOlSpUSjUYjVlZWYmVlJUOGDLFQpEo8a4t0iypKBlGlSpXE8xknTIABAwxfepF4LuT/4h7J4Q38E//FvHnQp0/qA42T1oty/vjjD7744gtGjhxJ//79zXqv27dvs3btWgCGDRtm0hI/ag6lkl61bt2acuXKMWbMGDZv3kxkJJw8CYcPw82bEBMDzs5QoQJUrQp581o6YtOws7Nj8eLF5MqVi/79+3Pv3j1GjhyJTqdj3LhxXLignzAUP2d8//79lgxXAVRCqSgp0a8fLFsGe/bo38mNZW0N9epBKrckTEpaJZSbN2+mZ8+e9OrVy+wLByIjI/Hz88POzg7QlwsqWbKkydpXZYOU9Eqr1TJq1Cjatx9N27Z32bgxD8+fg0ajf/sA0Okgfi1elSowaBC0bw/29paL2xS0Wi3Tp08nb968fPXVV9y9e5caNWowfvz4l849evQosbGxRte8VVJPLcpRlJTQamHpUsif/79389SytoaCBeHPP/V/HUwgrVZ5BwUF4efnR5MmTZgzZ45ZC4KLCB9++CFHjx5l3bp1FChQIMkC56kVGxvLs2fPVEKppEthYbBrV1vgNGvW5OL5c/1xEYiO1j8S/sofPQrdukGZMpAZ1vJoNBq+/PJL5s+fz9y5c1m5ciXDhg3D2dk50ftOREQEZ8+eNXwtov/cP2UKdOwI1aqBlxc0bAhDh+rfxuN2XFVMRPVQKkpK5cmjf6f29YXLl/XdAyml1ULx4rB9O+TObbLQ0mLI+9KlS7z77ruUL1+eZcuWYW1sYv0Gs2bN4rfffmPhwoV4eXklWeDcGCEhIQBqyFtJdy5ehMaN4do1feKk0735g1v8r//161CnDvzvfzBypMk+s1pMr169yJkzJx06dCA4OJgzZ86wZMkSpkyZYqhNu379ekqVKse8eTB9Oly6pH+r1WgSJ907d+oTcXt76NIFvvgCSpWy0AvLRFQPpaKkRoEC+q6AgXHlzpObVFlb69/dBg2CI0f0PZ0mpNFoEBGTtpnQvXv3aNKkCW5ubqxfvx5HR0ez3QsgICCAIUOGMGTIELp27QroC5wfPnzYZInz07huCtVDqaQnly5BjRpw40bqPrPGxup76UaPhi+/NH18lvDee++xdetWjh07RosWLfjggw+4ceMG06dPx8nJifPnHfD01L+9Xr6svybhdIB40dH6fyMiYOFCKFcOvvvu5fOUlFEJpaKklpOT/mPwgQPQrt1/SWV80giJJzpZW+snNh08CNOmgRmSMXMOeYeGhtIsbiefTZs2kSNHjjdfZISrV6/Srl07fHx8+Pbb/za69Pb2JiQkxDAp31jBwcGASiiV9CM8HJo00Q/JmmKq9uTJ8PvvxreTHtSqVYtdu3bx4MEDatasyc2bNxk0aBC//vqMRYsGc+7cf6U0kiMmRp9gDh0KzZvrv/dK6qiEUlGM5e0NixfD7duwapV+/KRNG/27U5s2+q9Xr4Y7d2DRIv1STDMxVw9lVFQUbdu25eLFi2zcuJEiRYqY/B4JhYWF0apVK1xdXV8aVq9SpQqAyYa94xNKNeStWMr777+Pvb294UPSqFFw9Wp8MjkJ0AB/x529DHgfKBl3vN5rWo4EhgH56NbNAU/Pd9i6dat5XkQaKleuHHv37sXW1pYaNWowZcplOnbU9zAa83l6yxZo1QqiokwW6tvFwmWLFEUxIUdHR3F3dzdpm7GxsdKlSxextbUVf39/k7adFJ1OJ+3atRMnJyc5efJkkueUKlVKXxvUBP766y8B5N69eyZpT1FS6t69e5ItWzbx8fGRS5dENJr4PrYrAg4CfglK2NYVcBbwEcgW97W84tFRwFrgc9Fq50rOnNXF2tpadu3aZemXbBIPHjyQSpVaCTwXjUb3mu9D8h8ajcjo0ZZ+ZRmT6qFUlEzEHItyhg8fzuLFi/njjz/w8fExadtJmThxIitWrOCPP/6gXLlySZ7j5eVlspXeag6lYmm5cuVi8uTJBAQEMHDgQrSGv8wDABtgeoKz/wCCAX/0m8C+ykFgKTARmIJO15enT/0pWLAwX3zxhelfRBpJ2JubPXsOXFxWotHYIKIh9b25h4CBQFlEnBgzphCNGrU32bSat4alM1pFUUzH2dlZSpQoYbL2pk2bJoBMnz7dZG2+zvr160Wj0cjoN3QRTJ8+XWxtbSUyMtLoe86YMUPs7OyMbkdRjKHT6aRmzZqi0eQQeCiwJG6XrRmv6VEr+5oeyqECVgLBiXrfWrSYIIBcv37d0i85VRL25m7dmvD1GtOb6yeQR+BjgZ9Foxkndna5XztKorxM9VAqSiZiyh7KpUuXMmTIEIYNG8agQYNM0ubrnD17ls6dO9OyZUtGjRr12nO9vLyIiori5MmTRt9X7ZKjpAcajYZhw+YiEgx8CAwBqgIfpbLFo0ApIIvhiFYLYWHeABw7dsyYcC0mYW/uF18sTFBgw5je3E+Ba8AMoDciI4iM3EV0dAyTJk0y/YvIpFRCqSiZiKkW5fj7+9O1a1e6du3KxIkTTRDZ6z19+pSWLVtSqFAhfv/9d7Ta1781VapUCWtra5MMe6tdcpT0IjS0LPA5sAJ4AMwl9X+m7wCJ92GMjYULF/THbt++neo4La13795Uq1aTo0c/JybmEfqh/U3AN0DCUmwFSd73rwZgm+iIVluSnDnLJiqWrryeSigVJRMxRQ/lsWPHaNWqFb6+vsyfP9+su+CAfqeazp078+DBA9auXYuLi8sbr3FwcKB8+fImWekdHBysEkolXbh1CzSa+HJc+YCk5xAnTzhg99LRhw/1+zGGZ+D6OBqNhgED5qLvfTRFb25ShMeP75m9PFpmohJKRclEtFqtUQnl1atXadq0Ke7u7qxcuRIbGxsTRpe0r7/+ms2bN7Ns2TJKlCiR7OtMtTBHDXkr6cWjRzcQGY0+kbwBfPuGK17HAX3ZoMR0ugj9sw4ORrRteU+fmrI392U63SLCw2/RoUMHk7WZ2amEUlEyEWN6KB88eEDjxo1xdnZmw4YNODs7mzi6ly1ZsoTJkyfz7bff0qhRoxRd6+XlxZkzZwgLCzMqBjXkraQXGzcOjP8voB0wHriSytbyoh/2TszeXn8sX77XzSlM/x4/Bq3WVL25LzoHfISVVXW6detmwnYzN5VQKkomkto5lGFhYTRv3pzg4GA2b95Mrly5zBBdYkePHqVXr168//77fPrppym+3tvbG51Ox5EjR4yKQw15K+nBmjVrOHFiHTAOKAD8gH5eX2qHcSsBF4CQBMcEjUZfUqdQoUKpDTVdCAm5gU5nqt7chO4CzQBXnJxWYmVlZaJ2Mz+VUCpKJpKahDI6Opr27dtz5swZNm7cSLFixcwU3X/u379Pq1atKFu2LPPmzUvVPM0yZcrg4OBg9DxKNeStWFpoaCiDBg2iYsXKaDQfxx3Nhz653IR+WDel2gKxwDzDEY0mgtDQRYB+YVu5cuUYMGAAS5cuTZeLdP766y8GDBjAggULOHv2bKLRl23bTNmbGy8YaAo8BTaRO3fG7sVNa9ZvPkVRlIwiOXMoAwMDmTt3LjNnziRbtmz069ePLVu28M8//+Dp6Wn2GKOjo2nXrh2RkZGsWbMm1XO5rK2t8fT0NHoepeqhVCxtxIgR3L59m9WrV/O//1mxeXP8FoIfAQuBwUATwAUIjHuAfu5gGPrVzQB14h4A76BPtL4E7gMlEFmIldUTlixZRlRUFIGBgfj7+zN79mwAihcvTt26dalTpw516tShSJEiZl+U9zr//PMP8+bNM8Tn7OxM1apVERFOnNgJTOO/3tzN6L9fG1N5twigBfpe3W1YWZXhnXeMfQVvGcuWwVQUxZRy584tuXLleu057dq1E0BKliwpAwcOFED+/PPPNIpQZMCAAWJjYyO7d+82uq0hQ4ZIsWLFjGrD3t4+zQq3K8qLgoKCxMrKyrCV6D//vFh0+6CAVmBQ3Nej4wqeJ/UY/cK14QKfxxXtthMnJy/ZtGnTSzHcuXNHli9fLgMHDpQKFSqIRqMRQAoUKCCdO3eWOXPmyJkzZ0Sn06Xp92bJkiWvfK12dg5ibR2T4LVOj3tueSqKwMcIvCf6bSo3CIhotSIzZqTpy83wNCImKFqnKEq6kC9fPqKjo3nw4EGSz8fGxuLm5kZISIihN/Ozzz7ju+++S5P4fv75Z/r27cu8efPo06eP0e0tWbLEUHIoNeU9oqKisLOzY8GCBWryvZIu6HTwzjtw7BjExJi27Y0boUmTN5/3+PFj9uzZQ2BgIIGBgRw+fJjY2Fhy5sxp6L2sU6cO5cuXN/kcw9jYWI4fP46/vz8bN27E398/yfO2b9/OwoW+LF4c/32KBbzRz4E8x8u9uTMBR6BX3NcJe3MHoy+I3gJoD+iLwM+cCVmy6Ld7VJLB0hmtoiimky9fPsmePfsrnz9w4ECiT/kajUacnZ1l586dZo9t9+7dYmNjIx9++KHJ2rx48aIAsnHjxlRdf//+fQFk7dq1JotJUYx15oyIjc2rtltM+cPKSqR799THExISIps3b5avv/5aateuLba2tgKIq6urNGvWTCZPniz79u2TqKioFLet0+nk1KlTMnPmTGndurVky5ZNAHFwcJCGDRtK9uzZX3rPGjBggIiIHDhgqt7cuq85T6VJyaW+U4qSQd2+LbJokcinn4o0aybi6ytiZ7dN7Ox+lD//FLl58+Vrxo0bJ1qt9qU3TDc3N4mNjTVbrDdu3JDcuXNLnTp1TLL/djydTifZsmWTsWPHpur6CxcuCCABAQEmi0lRTGH+fNMkk9bWIqVLizx9arrYwsPDZefOnTJu3Dhp2LChODo6CiCOjo7SoEEDGTt2rOzYsUOeP3/+0rU6nU4uXbok8+bNk44dO0ru3LkFEBsbG6ldu7aMHj1adu7cKRERESIihmk5gEycOPGlYfd27fQJs6mSb9AJPJcBA74z3TfsLaGGvBUlg9m7F77/Htau1Q+P2dhAdHT8swJEA7ZotdCiBXz2GdSurX+2UqVKHD9+HMCwvWGzZs0YPHgwvr6+Zok3PDycOnXqcO/ePYKCgkxekqhx48bY2tqyfv36FF8bFBSEl5cXR44coXLlyiaNS1GM9eOPMHCgfvg1NeVltVooXRq2b4fcuU0fX7zo6GiOHDliGCLftWsXwcHB2Nra4u3tTaVKlbC3t+fOnTvs2rWL69evo9VqqVq1Kr6+vvj4+FCzZk2cnJxeatvf358WLVowf/58OnXq9NLzDx9CqVIQHJy671HSPqJgwfVcu3bNoouSMhxLZ7SKoiRPaKhI//7/9Tokt3cCRPr0Ebl797nhk37+/Pll/PjxcuvWLbPGrNPp5P333xcHBwc5fPiwWe7x9ddfS+7cuVO1YGDbtm0CyJUrV8wQmaIYb/Nmkbx5U9YLp9X+93sfHJz2Md++fVsmT54sNWvWFGdn50SjIblz55ZWrVrJ4sWL5dGjR8lqLyYm5rXP794tYmf33+tO/SNW4BdDrAcOHDDFt+OtoXooFSUDuH4dfH3h33/jy4mkjJUVFCwouLsPoFcvX/z8/Aw9lOY0depUPvvsMxYvXpxk74IprFu3jpYtW3L9+nUKFiyYomtXrVpF27ZtefToEW5ubmaJT1GMFRwMEyfCnDn6/048KqGn1YJGo39/qFsXRo6E+vXTJr6nT58aShD5+/tz8uRJANzd3Q09kPnz5+fUqVMEBgayc+dObt68CUD58uUTLfTJkydPqmLYtQuaNYPw8JQvZtJoBBENMBsYCOiwsrJi0KBBTJ06NdG5MTHwzz/6Xt/9++HiRf3/C1tbfW+wtzc0bgwNG+r/n7xNVEKpKOnc7dtQrRrcuWPcqk9ra8iVCw4cgAIFTBffq2zZsoWmTZsydOhQJk2aZLb73Llzh3z58rFy5Ur8/PxSdO2vv/5Kr169iI6OxtpaleVV0reICP1Ulz179L/H16/rE0hnZ/D0hKpVoVUrfWJjTmFhYezevRt/f38CAgI4fPgwOp2OQoUKUb9+/URJZFJEhGvXrhmSy127dnHx4kUASpUqlSjBLFy4cLLjunULeveGTZv0H6KT8+FbqwUrq1Cio3tgZbWW2AQXZc+enfv376PVaomOhh9+gKlT4e7dpJN60L/PxsRAoUIwbBj066eP5W2gEkpFScd0OvDx0f8BSU3P5IusrfWfoHftMu+n50uXLuHt7U21atVYv3692bcvK1CgAO+//36KE9dp06YxcuRInj17ZqbIFCXji4yMZP/+/YYeyAMHDhAdHU2ePHnw9fU1JJBFixZN9ZzD27dvs2vXLsM8zFOnTgH6LSLjk8u6detSsmTJ195DRN+DOGMGbNmiP2Zjo38vFdEndzEx+v/Om1c/R7V790iOHdvOypUrWbVqFSEh/21XuWrVKkqUaEOXLnD6tP66lKhWDX7/HUqWTPG3JMNRCaWipGOzZ8OAAQDvAyuBE0CpF86ahH43jPVAc+AZMCLu/AdAMWAQ8KHhih9+gE8+MU/MoaGhVKtWjejoaA4ePJgm2xq2adOG4OBgtm/fnqLr/ve//zF//nzD8JuiKBATE0NQUBABAQH4+/uze/duIiIiyJYtGz4+PoYk0sPDw2yLVh49esTu3bsNCeaRI0fQ6XTkzp07UQ9muXLlXjl95+ZN/bB0UJC+9zImRl9XskIFqFIFvLxe7j2MiYnhn3/+oU+fPty/f5/69b9l9+6hxMSk7kO9tTU4OMDmzVC9eiq+ERmISigVJZ2KiNB/gn76FPRbp3kAlYCEhX6vAmWBd9EnkLHoi/UGod+GrCT6Lcn+Qr/X7VcAuLjoh20cHU0bs06nw8/Pj+3bt3PgwAFKm3vsLc7EiROZNGkST548SdHc0MGDB7N161ZOnz5txugUJX3T6XScOHHC0AMZGBhIaGgozs7O1K1b15BEVqxYMU3mXiclJCSEvXv3GhLMgwcPEh0dTbZs2ahdu7YhwaxcuXKyp69ERkZiZ2eX5HMRERE0afINO3eORKu1RadLfeKs1eqTyr179clspmWhxUCKorzB77+/uAJxXtzqwwUJjjURyCJwM+7r5XHn/PLCtX4C9gL3DMd++cX0MY8ePVo0Go2sW7fO9I2/xtatWwWQs2fPpui67t27S/Xq1c0UlaKkTzqdTs6ePSs//vij+Pn5iZubmwBib28v9evXl/Hjx6e6UHlaef78uQQEBMiYMWOkfv364uDgIIA4OztLo0aN5JtvvpHAwEAJDw9P8vpz586JjY2NfPXVV0nW4A0OFsmXTycajc4k9S2trETc3UXiymtmSiqhVJR0qkGDF8tg6ARqCuQQeCgQv8/tjATnfBx3LOyFN7QVccfnCYhoNCJ16pg23tWrVwsg33zzjWkbToYnT54IIL///nuKrmvdurU0bdrUTFEpSvpx5coVmT9/vnTu3Fny5MkjgFhbW0utWrVk1KhREhAQ8MrkKyOIjIyUvXv3yqRJk+Tdd9+VLFmyCCB2dnZSt25dGTlypGzdulWePXsmIiIzZswwlAfy8/OTsLCwRO316xdfqqmLgJ3A+SQSxYlxbawXCEhUHunlxzei0Yh8/bUlvjtpQw15K0o6JAKurhAa+uIzp4HKQCtgF1AAOADED0P1A34BIoCEwz7/AM3inp8D6Ie7Q0NNszjn1KlTVKtWjXfffZdly5ZZpBiwu7s7jRo1YubMmcm+xtfXl9y5c7NkyRIzRqYoae/27duGOZD+/v78+++/aLVaPD09DXMga9asibOzs6VDNYvY2FhOnDhhGCIPDAzk4cOHWFtbU6VKFZ48ecKlS5fQ6XRotVoqVqzIhg0byJs3L7du6Vdp6wulJ3e60T1gaxKR/AFsAQ4CXtjbw717+rmcmY2qk6Eo6dD160klk6B/A/scmAhYARv4L5kEcEc/j3I/UCvB8V1x/94yHHn+HC5fNn714ePHj2nZsiXFixfnt99+s9jOEl5eXhw6dChF1wQHB1Oq1IuLnBQl43n48CE7duwwJJDnz58H9HUeW7ZsiY+PD3Xq1CFbtmwWjjRtWFlZUblyZSpXrswnn3yCiHD27FlDqaKDBw8S35+m0+k4duwYZcuWZe3atfj71+G/t7FcwGSgL7AQ6BZ3fABgA0yP+zo3+sWTLxqDfi67FwCRkfDHH/DRR6Z/zZamEkpFSYcePnzdszni/s0HlHvhuc7AWKAn8CP6N7ItwE9xz4cnOvvRI+MSypiYGDp06EBwcDDbtm1Lcuu0tOLt7c3KlSuJiorC1tY2WdcEBwenySp0RTG1kJCQRMXE47dULVmyJL6+vowdO5Z69eqZfKvTjEqj0VCmTBnKlCmDj48PS5cuTfS8iPDkyRMaN25M0aLhL6zo7o0+mfwcfSWNrcAmYAaQdK1NvYPAJeB/iY4uX64SSkVR0sirO/luAKPRJ5KngG/RlwiKlwdYB3wANIo7lgWYif6TdeLhLWM7E4cNG0ZAQABbt26laNGixjVmJC8vLyIjIzl58iRVqlRJ1jVPnz7F1dXVzJEpivGeP3/Onj17DMXEg4KCiI2NpWDBgtSvX5/PPvsMHx8fCqTFrgUZ3J49exJ97erqSu3atSlfvjzVq9enVasXr9AAc9FPN/oQ/YhPVfSVNF5nUdy/XQxHRODIEf1wembbSUcllIqSDuXI8apnBsb9uxH4FH0poM7oa03GqwNcAU4CYUBF4Hbcc4mHd199nzf7/fffmTp1KjNmzMDHxyf1DZlIpUqVsLa25tChQ8lKKEWE4OBglVAq6VJUVBQHDhww9EDu27eP6OhocuXKha+vL7169cLX15dixYpZbJpJRuXt7c3AgQPx9PSkRo0alCpVyvA9PHw4fu7ki9403ehFscAywBsokeiZZ8/gxg1IwSZAGYJKKBUlHSpYUL8oJzg44dE1ZkN2VwAAHcJJREFU6Hsfp6FfjPMD+hqTH6FPMBOyQj+JPN62uH8bGI44O0OxhHloChw6dIi+ffvSo0cPBg4c+OYL0oCDgwPly5fn0KFD9O/f/43nh4eHExMToxJKJV2IiYnhyJEjhgRy9+7dhIeHkzVrVnx8fJg6dSo+Pj6UKVNGJZBGCgkJQaPRkDdv3pd290mwSU4SXjfd6EXb0S/U+eoVMSQ73AxDJZSKkg5pNPotu7Zujf+0HIp+t5vKwMdxZ+UDxgGfACuAdq9o7QH6SeUViE8otVr9vr+p+bt09+5dWrduTeXKlZk9e3a6+uPm5eXF3r17k3XuU33FeDWHUrEInU7HqVOnDAnkzp07CQkJwcnJiTp16jB27FhDMXFzb136ttm6dSszZ85k5syZODk50aJFC9q0aUPTpk2xtn7Vqvc3TTd60SL0H+w7JPlsMmuvZyiZ8CUpSubQtat+uy69EeiHrVejf5OK9xH6yeKDgSaAC1AXqI5+mOUuMA/9dox/Ez9Eo9NB9+4pjykyMhI/Pz90Oh2rVq165S4TluLl5cX8+fMJCwt74wKh4LjuX9VDqaQFEeHChQuGBHLHjh08fPgQOzs7atasydChQ/H19cXLywsbGxtLh5upubu7G/47LCyM5cuXs3TpUjQaDY0a9ee/RYwJJWe6Ubxw9CNKDdCv/n5ZvnypDj/dUgmloqRTfn7w8cfw+PFh9Cu2BxBfeuI/VujrSlZDn3ROB6qg77G8hX5BTkP0PZn/vfG5ukL79imLR0QYOHAgQUFBBAYGki8dviN6e3uj0+k4cuQItWvXfu25KqFUzO3atWuGBNLf35/bt29jbW2Nt7c3/fv3x9fXl+rVq2Nvb2/pUDOtmJgYrly5wtmzZzl37hznzp0jKCgo0Tm6BJMmPT2zsXfvi2XbUjLdiLhzQ0m4GCehwoX178GZjUooFSWdsrODSZOgb98qQMxrzvRCPwE83tS4x6tNmKDfWzYlZs+ezfz58/ntt9945513UnZxGilTpgwODg4cPHgw2QmlGvJWTOXOnTsEBAQYCopfuXIFjUaDp6cnnTt3xtfXl1q1auHi4mLpUDOd0NBQzp8/nyhxPHv2LJcuXSI6OhqALFmy4OHhQcWKFTl16pThWq1Wi7u7O8uXL6dcuXIcOwZbthBXOig1040WA45A65fitLaGevVM97rTE7VTjqKkYyLQqBEEBPBCXbTUsbKCmjX17aWkZMXOnTtp0KABH330ET/88IPxgZhRrVq1KFCgwEt15l60bNkyOnbsSHBwMFky47YVitk9evSInTt3Gnogz549C0DZsmUNu9HUrVv3rSkmbm4iwp07dwzJYsLE8dat/zZtKFCgAB4eHpQuXRoPDw/Df+fJk8cw57tAgQKGawYNGsTkyZMNPcVr1kCbNvGtfQLMQr9ZRMIRolj0K7jvAufQTzcCeIy+fJsfkPQOXLt2Qa1aST6VoakeSkVJxzQa+PNPqF5dX2Yi5nUdlW9gba2ft7N0acqSyWvXrtG2bVvq1KnDd999l/oA0oiXlxfr1q1743nBwcFoNJpMu/WcYnqhoaHs2rXLkEAeO3YMEaFEiRL4+voyatQofHx8yJ076XlzSvJER0dz+fLlRAlj/H+HxC2PtrGxoWTJknh4eNC9e3dD4uju7p6sHuBq1aqxY8cO/vjjD5o2bZrouRYt9O+Vd+4cRiQl041A32MZjX5+5QtXWIG7u/5DfWakeigVJQO4dQvq14eLF19VI+31tFp9iSB/f31JouR6/vw5NWvWJDg4mEOHDpE9e/aU3zyNLVmyhM6dO/PgwQNyvKbQ5pQpU5gwYQJPnjxJw+iUjCQ8PJy9e/caEshDhw4RGxtLgQIFDD2QPj4+FCpUyNKhZkghISGGRDFh4njp0iVi4j49u7q6vtTT6OHhQbFixbA2Yql0WFgYGo0GR0fHJJ9fvx7eey/VzSdJo4HAwMzZOwmqh1JRMoT8+fW7K3z9NUyfrv+km5zeSmtr/XkffQQTJ0JKdkYUEXr27MmFCxfYt29fhkgmQd9DCRAUFESTJk1eeZ7aJUd5UVRUFIcOHTIkkHv37iUqKoqcOXPi6+tLjx498PHxoUSJEumqXFZ6JiLcvn37pSHqc+fOcfv2bcN5BQsWpHTp0jRq1IhBgwYZEsfcuXOb5Xv9pioQLVrA++/D4sWp+xD/Io0GBg/OvMkkqIRSUTIMR0eYNg26dIEffoBly/TJorW1fn6lfqxBh35ujw3W1tCunf5NzNs75febPHkyy5YtY+XKlVSoUMGUL8WsihcvTrZs2Th06NBrE0q1S44SGxvL0aNHDQnkrl27eP78Oa6urtSrV48pU6bg6+tL2bJlVQL5BlFRUVy+fDnJxPHZs2cA2NraUrJkSUqXLk3Pnj0NPY6lSpVKl1NP5s6Fq1dh/37j5rBrtdCkCUyebLrY0iM15K0oGdTDh/rJ3UFBcP48nDp1kYsXT6LTnWPVqq+oXRty5kxd2//88w/Nmzfn66+/Zty4caYNPA00btwYOzu7186l/OCDD7h27RqBgYFpGJliSSLC6dOnE9WCDA4OxtHRkTp16hiGsCtXrqyKib9CcHBwknMbL126RGxc1pU1a1ZKly790lB1kSJFjBqmtoSwMOjYEf7+O+XXajT6D/pdusCvv4KtrenjS09UQqkomcTMmTMZPHgwOp0OY36tz58/j7e3N3Xr1mXt2rVoU7KCJ50YMWIE8+fP586dO6/sWWrRogUajSZZC3iUjElEuHTpUqIE8v79+9ja2lKjRg3DPEgvLy9sM/tf+xQQEW7evJlk4njnzh3DeYULF35pbqOHhwe5cuXKVD26IrBggb4ucHj4m4fA41961qwwbx60bWvuCNOHjPVRQVGUV3J1dTUU6A0LC8POzi7FvQHBwcG0bNmS/Pnz8+eff2bIZBL08yjHjx/PzZs3KfiKVUjBwcEULlw4jSNTzO369euGOpD+/v7cvHkTKysrvL296d27N76+vtSoUQOHlBZizYSioqK4dOmSIWFMmDiGhYUBYGdnR6lSpfDw8KB3796GxLFUqVJvnIeYWWg00KOHfpHOggUwcyZcu6Z/zspKP6St0/03LF6yJAwaBB98AG9TRTKVUCpKBtemTRv+/vtvQ/FewDAfafDgwUybNi1Z7cTGxtKlSxfu3bvHwYMHM3RtRu+4SaOHDh16bUKp5lBmfPfu3UuUQF6+fBmNRkOlSpXo0KEDvr6+1K5d+60uJv706dMkazdeuXLFMEzt5uZG6dKlqVSpEh07djQkjkWKFFHD/3GyZ4fPPoNPP4Xr1/XTjS5ehMhIsLcHDw+oUkW/iDITddAmm0ooFSWDO3PmTKJkMqH8+fMnu51Ro0axceNGNmzYQMmSJU0VnkXkzZuX/Pnzc/DgQdr8V6E4keDgYLVLTgb05MmTRMXET58+Deh3SWrSpImhmHhGqUpgKjqdzjBM/WLieO/ePQA0Go1hmLp58+aJhqpz5MiRqYapzUmj0W+fqAY4ElMJpaJkcDNmzKBx48YvHXdxcaF///5JXhMZGcnmzZtp1qwZVlZWLF++nAkTJvDtt9++dmV0RuLl5cWhQ4de+bwqG5QxPHv2LFEx8aNHjyIiFCtWDF9fX77++mvq1atH3rx5LR1qmoiMjOTixYsvJY7nzp3j+fPngH6Y2t3dHQ8PD+rWrWuY21iqVKlX1l1UFGOphFJRMrhGjRrRpEkTNm3alOj48OHDX1mK448//qBPnz40btyYr7/+mh49etCpUyc+//zztAg5TXh7ezNp0iR0Ot1Lc0F1Oh0hISEqoUyHIiIi2LdvnyGBPHjwIDExMeTLlw9fX18GDhyIj48PRYoUsXSoZvXkyZMkS/BcuXLFMFc6e/bslC5dGk9PT7p06WJIHAsXLqyGqZU0p1Z5K0omcP78eUqXLm1Y3W1vb8+9e/deOQ+yZ8+eLFy4EI1Gg0ajoVSpUhw6dChT9V5s27aNhg0bcvbsWTw8PBI9F59MLl26lA4dOlgoQgX02+y9WEw8MjKSHDly4OPjY1iJXbJkyUw3JKvT6bhx40aSieP9+/cB/TB1kSJFktwt5nU7QSlKWlM9lIqSCbi7uzNgwAB+/PFHAAYOHPjaRTW7du0y9HIA/PvvvwQEBNCsWTOzx5pWqlatCugX5ryYUD59+hRAzaG0gNjYWI4fP25IIAMDAwkLCyNLlizUrVuXSZMm4evrS7ly5TJslYEXRUREvDRMffbsWc6fP094eDig/xDo7u5O6dKl8fX1NSSOJUuWVCvSlQxB9VAqSibx+PFjcubMiU6n49KlSxQvXjzJ8548eYKbm9tLxzUaDfv37zeskM4M3N3dady4MTNmzEh0/OTJk1SoUIF9+/ZRrVo1C0X3dhARzpw5g7+/PwEBAezYsYMnT57g4OBA7dq1DT2QlStXznBFr1/06NGjJGs3Xr161fABLmfOnC/VbSxdujSFChXKNAm08nbK2L+9iqJw5Ahs2waHD7uRP/9jbty4T4sWRahYUV/ColEjSLhz4oEDBxJdb2VlhUajoWvXrpQpUyaNozcvLy8vDh48+NLx4OBgADWH0gxEhCtXrhh6IAMCArh37x42NjZUr16dTz75BF9fX7y9vbGzs7N0uCmm0+m4du1akonjgwcPANBqtRQtWhQPDw9atWqVKHl821afK28PlVAqSgYkot/L+9tv4ehRfXFdgNhYV8CVs2fhwgVYvhyGDoV33oEvvoDWrWHlypWGdrJkycLHH3/MwIEDyZMnj2VejBl5eXmxcuVKoqKiEu2Eooa8TevmzZuJEsjr16+j1Wrx8vKiZ8+e+Pj4ULNmzQw1Rzc8PJyLFy++VPT7/PnzREREAODg4GBIFBs0aGBIHEuWLIm9vb2FX4GipC2VUCpKBnPzJvTuDZs363dogP92aEgo4bFDh8DPT7/Tw6NHT3FwcGDChAn06dMnU+924e3tTWRkJKdOncLT09NwXPVQGuf+/fvs2LHDkERevHgRgIoVK+Ln52coJp4Rvr8PHz5Msnbjv//+a1jklitXLkqXLk21atXo3r27IXEsWLCgGqZWlDgqoVSUDOTIEWjQAEJD9V+/aU/ZePHnbdgAbm4rOHRIQ9my5okxPalUqRLW1tYcPHjwpYTS2tpaLXZIpqdPnyYqJn7q1CkAQ8/chAkTqFevXrpddRwbG2sYpn4xcXz06BGgH6YuVqwYHh4etG3b1rBAxsPDI8k5x4qiJKYSSkXJIM6cAR8fCAtLukcyOWJj4fFjDXXqwIEDUKKEaWNMbxwcHChXrhyHDh1KVOQ9fpeczFaGxlTCwsLYvXu3IYE8cuQIOp2OwoULU79+fYYPH46Pjw/58uWzdKiJPH/+nAsXLryUOF64cMEwTO3o6GgYpm7cuLHhv0uWLJkh53QqSnqhEkpFyQAiI/VD1sYkk/FiYyE4GDp00CeVGXxh7Rt5e3uzb9++RMfULjmJRUREsH//fsOe2AcOHCA6Opq8efPi6+tL//798fX1pWjRopYOFRHh4cOHL81tPHfuHNeuXTMMU+fJkwcPDw9q1KhBr169DIljgQIF1DC1ophBJv9ToiiZwzffwPnzIPI+sBI4AZR64axJwJfAeqA5MATYCfwLRACFgQ7A58TGOnP0KHz/PQwblkYvwkK8vLyYP38+YWFhhvmiwcHBb3VCGRMTQ1BQkKEHcs+ePURERODm5oaPjw8//PADvr6+uLu7W6wXNzY2ln///TfJot+PHz8G9BUKihUrRunSpWnfvr1hiNrd3Z1s2bJZJG5FeVupOpSKks49eQJ58+p7KeE+4AFUAvwTnHUVKAu8iz7hBKgFVAFKAPbAUeBXoCoQCGhxdoa7dyETr8vh+PHjVKpUicDAQGrXrg1Ap06duHfvHv7+/m+4OnPQ6XSGYuIBAQEEBgYSGhqKi4sLderUMdSCrFChQpr33oWFhXHhwoWXEseLFy8Sqf+hx8nJKcnajcWLF1fD1IqSTqgeSkVJ5xYuhKio+K9yAZOBvsBCoFvc8QGADTA9wZW7k2itOPA5cBCoxrNnsHQp9OpljsjTh7Jly+Lg4MChQ4cMCeXTp08zdckgEeHcuXOGHsgdO3bw+PFj7O3tqVWrFl9++SW+vr5UqVIlTYqJiwj3799/qafx7NmzXL9+3XBe3rx58fDwoE6dOvTt29eQOObPn1/Nd1WUdE4llIqSzv35p77u5H96o08mP0c/tL0V2ATMAPK/obUicf8+BUCjgUWLMndCaW1tjaenZ6IC58HBwZmq7qaIcPXqVUMPpL+/P3fv3sXGxoZ33nmHgQMH4uvrS7Vq1czaoxcTE8PVq1eTLPr95MkTQD9MXaJECTw8POjcubOhx9HDw+OtnoagKBmdSigVJR2LjoYTJ148qgHmApWBD4Fd6IexP0qihRj0yWMUcAoYAbgA+u0VRSAoSP9vZu4A8vLyYt26dYavM8Mcylu3bhmSR39/f65du4ZWq6VKlSp069YNX19fatasaZY6o8+ePeP8+fMvJY4XL14kKq473cXFxZAoNm/e3DBcXbx48URF5hVFyRxUQqko6dj58/qk8mVl0fdQTgSsgA1AUnPfgoDqCb52B9YB/9XVCw2Fa9egSBHTxJweeXt788MPi1i+PISoqCzcvl2f+/e9uHNHPz81I3j48GGiYuLnz58HoHz58rRq1QpfX1/q1KljsqF8EeHevXtJLoq5ceOG4bx8+fJRunRp6tWrR//+/Q2JY758+dQwtaK8RdSiHEVJx3bvhrhpf0mYCnwGFAQuAUn1+oSgny8ZBuwFtgFj0A+V/+foUahUySQhpys3b8LPP8O8eTHcvZv05+fcuaFbN+jfH9JBVRyD4OBgAgMDDQnkibiu6lKlSuHr64uPjw/16tUjV65cRt0nJiaGK1euJFn0O35HIWtra0qUKPHSohh3d3eyZMli9GtVFCXjUwmloqRje/dCzZpJPXMDKIN+TuQpYBz64ew3WQx8ABwBKhqOHj8OFSoYGWw6Eh4Oo0bB1Kn6ofw31e60stLvJtSnD3z3Hbi4pE2cCYWFhbFnzx7DMHZQUBA6nY6CBQtSv359QxJZoECBVLUfGhpqGKZOmDhevHiR6Lhu8CxZsiRKGOP/u3jx4tjY2Jjy5SqKksmohFJR0rErV6B48aSeaYm+bNBZ4FP0tSdPA8Xe0GIE4AR8gX64XO/uXX1PXWZw9iy0aAFXryZ/a8p4Wq1+CHztWqha1SzhGURGRnLgwAFDD+T+/fuJjo4md+7c+Pj4GEr5FCtWLNlDxyLCnTt3klwUc/PmTcN5BQoUSDJxzJs3rxqmVhQlVVRCqSjpmAi4uv63d7feGqANMA0YDNwGSgM1gI1vaDEYyIp+Mc9PgD6RvHvXlFFbzqlT+ikCoaGp31HIygpsbWH7dqhe/c3nJ1dMTAyHDx829EDu3r2b8PBwsmXLRr169QwJZOnSpd+Y1EVHR3PlypUkd4sJCQkBwMbGhpIlS76UOLq7u+NiiS5YRVEyNZVQKko617AhBPy/vbsPrfq64zj+vrmJiTPO0EwFXURLdxPiUyIaF1LdsExc/cMhXZltZDDBDeeMiBvUZQhdwZIxpCyOgQwHpaV1bXVdH5SxROd0nSF2+DDUxviIkYxsrZGiNcndHyc3apNY9XdTven7BT9ubvK7Jzf5I3xyzvmeb2MqIHUSlrrHAk2EghwIRwbVANuB7xIqu0cRzqa82a8JxTy/B35APA5LlsDrrw/1TzH0OjqgtDQ8Rm1PGY+Hw96PHoWionsbo6enhyNHjvTNQO7du5fOzk7y8/OZP39+3yzkzJkzicfjA45x+fJlTpw40W9vY0tLC11dXQCMGTPmlsCYepwyZYrL1JI+NwZK6QH3yiuwbFnqWQ1QD7wHzLnprm7CUUCXgOPAX4E1wBPA1wjHBu0D3iB0z9lPqojnrbdg8eKh/inSr7q6mtdee43Dhw+TSCR46inYvj0VJj/dhvLV3o//SShg+gawZ5CRm4GfAweIx5MsWFBJXV0dZZ9RtZRMJjl58mRfgGxsbKSjo4Pc3Fyqqqr6ZiBnz559S9BLJpNcvHhxwKKYixcv9t1XVFQ0YLeY8ePHu0wt6b4zUEoPuE8+gQkToKOjGZhLWK7+zQB3NgFfB1YTwuSzhG45bUCS0CXnCeCnwCiyssK4Z86EGblM097eTklJCWVlZdTWNvDYY6mvDNSG8puEoDgH+Bcwg4ED5SGgilA5/0Ogh7Fjf8u1a//l4MGDFBcX33L3mTNn+gJkQ0MDbW1tZGdnU1FR0RcgKysrycvL4/r167S0tAy4v7Gzd09DTk4OiUSiX3AsLi4mPz8/bb87SUo3A6WUAV56Caqr0z/uzp1hyTtTbd26lZUrV1JW9geOHv0+YRX424Qjkv7Njc5B53s/zgKmAV9h4EC5GPgH8AFQSDwO5eVtHD+eYOHChdTX199ymPjp06eJxWLMmjWrL0BOnz6dCxcu9AuOp06d6lumLigo6LdEnVqm/jxaIUpSuhkopQyQTIbg98470fcHQpiRfPJJePnl6GPdT8lkkrlz59HUdIKw1P8XYBlhT+lPBnnV7QLll4FFhL2oN0yYUExb2wek/lxOnTqViooKJk2axMiRIzl37lxfcGxra+t73aRJk/otUZeUlDBu3DiXqSUNKwZKKUN8+CE8+igcPx4tVMbj4RDzxsb7c95ium3efIx168qB7xD2iX6VsFdyoM5BcPtAmQt8j9ArPaWH7OxSurpOMKP3sM7W1lauXLkCwIgRI0gkEv2CYyKRGJK2h5L0IHJtRcoQBQWwdy88/jg0NYVZy3tRVQVvvjk8wiRAe/tUYrH1JJOf1YbyThQTCp66uVFBf5Wurv8A4ezIqqoqli9f3hccJ0+ePGiVtiR9URgopQxSWAj790NdHWzcGELlncxWxuPh2rQJamoyswhnMK2tEGYcASYQZiDv1SpC0dMKwuHvPcBzxGKdJJNQW1tL9VBsZpWkDHev/8ZLuk+ys2HDhrD0XVMDqVbKsRjk5Ny4Ulv0Cgpg/Xo4eRLWrRteYRLgo4/Ok0xuJATJ80BdhNF+BGwgtKicCkwHTjFx4s8ArLSWpEG4h1LKcFevwvvvQ3NzCI3XrkFeHhQXh/aBM2dCbu79fpdDp6hoCRcu3E0bytvtoUz5X+8YY4DpPPzwBlpbN3Hs2DFKS0vT9t4labgwUErKWDt27GDp0qXEYptJJtdyZ20o7yRQ3pCTA4WFFWRnt3H27FmyslzYkaRP8y+jpIzU2dnJmjVreOSRcpLJ1BFBE4BfAruAP6bl+1y//iqXLjWxdu1aw6QkDcIZSkkZqaamhvr6evbseY/Fi+fQ22yG/m0oRwN/670gdBn6EqHwBmB+70XvPc8CC4FCQsX3NhYs+Ba7d//ZQ8claRD+uy0p4zQ3N7NlyxZWrVrFvHlzWLHi5mKjOPA7QqCs7f1cA/CL3qsdOHPT84abRp7Y+/pfAT8G/k5Z2XO8++6fDJOSdBvOUErKeKdPQ0lJ6HueTllZcOhQKGySJA3OGUpJGW/KFHj++fSOGYvBM88YJiXpTjhDKWlY6O6GRYtCS8mo/c7jcZg1C/btG95HLklSujhDKWlYiMdh587QWjJKMXY8DjNmwK5dhklJulMGSknDxqhRsHs3rF4dnt9NsEzdu3x56Jn+0EPpf3+SNFwZKCUNK3l58MILIRSWl4fP3a5AO/W1khJ4+23Ytg1Gjx769ylJw4l7KCUNa83N8OKLcOAAHD4cWlNC6IAzbRpUVsLTT4fHVP9zSdLdMVBK+sLo7oaPP4aenrA87tGSkpQeBkpJkiRF4h5KSZIkRWKglCRJUiQGSkmSJEVioJQkSVIkBkpJkiRFYqCUJElSJAZKSZIkRWKglCRJUiQGSkmSJEVioJQkSVIkBkpJkiRFYqCUJElSJAZKSZIkRWKglCRJUiQGSkmSJEVioJQkSVIkBkpJkiRFYqCUJElSJAZKSZIkRWKglCRJUiQGSkmSJEVioJQkSVIkBkpJkiRFYqCUJElSJAZKSZIkRWKglCRJUiQGSkmSJEVioJQkSVIkBkpJkiRFYqCUJElSJAZKSZIkRWKglCRJUiQGSkmSJEVioJQkSVIkBkpJkiRFYqCUJElSJAZKSZIkRfJ/joSvi07bHIAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import networkx as nx\n",
    "import numpy as np\n",
    "\n",
    "# constructure networkx graph from adjacent matrix\n",
    "G = nx.DiGraph(data['meta']['parent_weights'])\n",
    "\n",
    "# transform node names from 0 to N-1 to X1 to XN\n",
    "no_of_var = data['meta']['parent_weights'].shape[0]\n",
    "original_names = [i for i in range(no_of_var)]\n",
    "node_names = [(\"X%d\" % (i + 1)) for i in range(no_of_var)]\n",
    "mapping = dict(zip(original_names, node_names))\n",
    "G = nx.relabel_nodes(G, mapping)\n",
    "\n",
    "# label the root cause nodes \n",
    "color_list = np.array(['blue','red'])\n",
    "node_color_idx = list((data['meta']['root_causes'] != 0).astype(int))\n",
    "node_color = color_list[node_color_idx]\n",
    "print(f\"The generated graph: {nx.is_directed_acyclic_graph(G)} is directed and acyclic.\")\n",
    "nx.draw(G, with_labels = True, node_color=node_color)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da7a31e1",
   "metadata": {},
   "source": [
    "In the graph, we can find X18 and X2 are two root causes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "85e19c37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X1</th>\n",
       "      <th>X2</th>\n",
       "      <th>X3</th>\n",
       "      <th>X4</th>\n",
       "      <th>X5</th>\n",
       "      <th>X6</th>\n",
       "      <th>X7</th>\n",
       "      <th>X8</th>\n",
       "      <th>X9</th>\n",
       "      <th>X10</th>\n",
       "      <th>X11</th>\n",
       "      <th>X12</th>\n",
       "      <th>X13</th>\n",
       "      <th>X14</th>\n",
       "      <th>X15</th>\n",
       "      <th>X16</th>\n",
       "      <th>X17</th>\n",
       "      <th>X18</th>\n",
       "      <th>X19</th>\n",
       "      <th>X20</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>X1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X3</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X4</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X5</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X6</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X7</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X8</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X9</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X10</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X11</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X12</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X13</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X14</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X15</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X16</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X17</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X18</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X19</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     X1  X2  X3  X4  X5  X6  X7  X8  X9  X10  X11  X12  X13  X14  X15  X16  \\\n",
       "X1    0   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X2    1   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X3    0   1   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X4    0   1   1   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X5    1   1   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X6    0   1   1   1   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X7    0   1   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X8    1   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X9    0   0   1   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X10   0   0   0   0   1   0   1   0   0    0    0    0    0    0    0    0   \n",
       "X11   0   1   0   0   0   0   0   0   1    0    0    0    0    0    0    0   \n",
       "X12   0   0   0   0   0   0   1   0   0    0    0    0    0    0    0    0   \n",
       "X13   0   0   0   0   1   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X14   0   0   0   0   1   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X15   0   0   0   0   0   0   0   0   0    0    1    0    0    0    0    0   \n",
       "X16   0   1   0   0   0   0   0   1   0    0    1    0    0    0    0    0   \n",
       "X17   0   0   0   0   0   0   0   0   0    0    0    1    0    0    0    0   \n",
       "X18   0   0   0   0   0   0   0   0   0    0    0    0    0    0    1    0   \n",
       "X19   0   1   0   0   0   0   1   0   0    0    0    1    0    0    0    0   \n",
       "X20   0   0   0   1   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "\n",
       "     X17  X18  X19  X20  \n",
       "X1     0    0    0    0  \n",
       "X2     0    0    0    0  \n",
       "X3     0    0    0    0  \n",
       "X4     0    0    0    0  \n",
       "X5     0    0    0    0  \n",
       "X6     0    0    0    0  \n",
       "X7     0    0    0    0  \n",
       "X8     0    0    0    0  \n",
       "X9     0    0    0    0  \n",
       "X10    0    0    0    0  \n",
       "X11    0    0    0    0  \n",
       "X12    0    0    0    0  \n",
       "X13    0    0    0    0  \n",
       "X14    0    0    0    0  \n",
       "X15    0    0    0    0  \n",
       "X16    0    0    0    0  \n",
       "X17    0    0    0    0  \n",
       "X18    0    0    0    0  \n",
       "X19    1    0    0    0  \n",
       "X20    0    0    0    0  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "true_matrix = pd.DataFrame((data['meta']['parent_weights']!=0).astype(int), columns=node_names, index=node_names)\n",
    "true_matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb4bf929",
   "metadata": {},
   "source": [
    "We can infer this causal graph from the normal data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "6b3f4984",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Depth=4, working on node 19: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 751.23it/s]\n"
     ]
    }
   ],
   "source": [
    "from pyrca.graphs.causal.pc import PC\n",
    "import pandas as pd\n",
    "\n",
    "# load data\n",
    "training_samples = data['data']['num_samples']\n",
    "tot_data = data['data']['data']\n",
    "normal_data = tot_data[:training_samples]\n",
    "normal_data_df = pd.DataFrame(normal_data, columns=node_names)\n",
    "abnormal_data = tot_data[training_samples:]\n",
    "abnormal_data_df = pd.DataFrame(abnormal_data, columns=node_names)\n",
    "\n",
    "# train causal graph construction model\n",
    "model = PC(PC.config_class())\n",
    "estimated_matrix = model.train(normal_data_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "f4ea0658",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>X1</th>\n",
       "      <th>X2</th>\n",
       "      <th>X3</th>\n",
       "      <th>X4</th>\n",
       "      <th>X5</th>\n",
       "      <th>X6</th>\n",
       "      <th>X7</th>\n",
       "      <th>X8</th>\n",
       "      <th>X9</th>\n",
       "      <th>X10</th>\n",
       "      <th>X11</th>\n",
       "      <th>X12</th>\n",
       "      <th>X13</th>\n",
       "      <th>X14</th>\n",
       "      <th>X15</th>\n",
       "      <th>X16</th>\n",
       "      <th>X17</th>\n",
       "      <th>X18</th>\n",
       "      <th>X19</th>\n",
       "      <th>X20</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>X1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X4</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X5</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X6</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X7</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X8</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X9</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X10</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X11</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X12</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X13</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X14</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X15</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X16</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X17</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X18</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>X20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     X1  X2  X3  X4  X5  X6  X7  X8  X9  X10  X11  X12  X13  X14  X15  X16  \\\n",
       "X1    0   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X2    1   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X3    0   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X4    0   0   1   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X5    1   1   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X6    0   0   1   1   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X7    0   1   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X8    1   0   0   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X9    0   1   1   0   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X10   0   0   0   0   1   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X11   0   1   0   0   0   0   0   0   1    0    0    0    0    0    0    0   \n",
       "X12   0   0   0   0   0   0   1   0   0    0    0    0    0    0    0    0   \n",
       "X13   0   0   0   0   1   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X14   0   0   0   0   1   0   0   0   0    0    0    0    0    0    0    0   \n",
       "X15   0   0   0   0   0   0   0   0   0    0    1    0    0    0    0    0   \n",
       "X16   0   0   0   0   0   0   0   1   0    0    1    0    0    0    0    0   \n",
       "X17   0   0   0   0   0   0   0   0   0    0    0    1    0    0    0    0   \n",
       "X18   0   0   0   0   0   0   0   0   0    0    0    0    0    0    1    0   \n",
       "X19   0   0   0   0   0   0   1   0   0    0    0    1    0    0    0    0   \n",
       "X20   0   0   0   1   0   0   0   0   0    0    0    0    0    0    0    0   \n",
       "\n",
       "     X17  X18  X19  X20  \n",
       "X1     0    0    0    0  \n",
       "X2     0    0    0    0  \n",
       "X3     0    0    0    0  \n",
       "X4     0    0    0    0  \n",
       "X5     0    0    0    0  \n",
       "X6     0    0    0    0  \n",
       "X7     0    0    0    0  \n",
       "X8     0    0    0    0  \n",
       "X9     0    0    0    0  \n",
       "X10    0    0    0    0  \n",
       "X11    0    0    0    0  \n",
       "X12    0    0    0    0  \n",
       "X13    0    0    0    0  \n",
       "X14    0    0    0    0  \n",
       "X15    0    0    0    0  \n",
       "X16    0    0    0    0  \n",
       "X17    0    0    0    0  \n",
       "X18    0    0    0    0  \n",
       "X19    1    0    0    0  \n",
       "X20    0    0    0    0  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "estimated_matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed3ff914",
   "metadata": {},
   "source": [
    "We can also evaluat the peformane of estimated graph using preceision, recall, f1 and shd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "869562b7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Precision: 0.960\n",
      "Recall: 0.800\n",
      "F1: 0.873\n",
      "SHD: 7\n"
     ]
    }
   ],
   "source": [
    "from pyrca.utils.evaluation import precision, recall, f1, shd\n",
    "\n",
    "adjPrec = precision(true_matrix, estimated_matrix)\n",
    "print(f\"Precision: {adjPrec:.3f}\")\n",
    "adjRec = recall(true_matrix, estimated_matrix)\n",
    "print(f\"Recall: {adjRec:.3f}\")\n",
    "f1 = f1(true_matrix, estimated_matrix)\n",
    "print(f\"F1: {f1 :.3f}\")\n",
    "shd = shd(true_matrix, estimated_matrix)\n",
    "print(f\"SHD: {shd.get_shd()}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "858af393",
   "metadata": {},
   "source": [
    "If you are not satisfied with the performance of estimated graph, you can add more domain knowledge, like required link, forbidden link, root nodes to improve the performance."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "25438b93",
   "metadata": {},
   "source": [
    "Given the estimated graph, we build a root cause localization model by using hypothesis testing algorithm. In the defult setting, the model would output the top-3 root cause nodes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "ccea1713",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'root_cause': 'X18', 'score': 46.84041728803036, 'paths': ['X18', 'X15', 'X11', 'X2', 'X1']}, {'root_cause': 'X2', 'score': 8.471318414296478, 'paths': ['X2', 'X1']}, {'root_cause': 'X7', 'score': 2.3871968209950434, 'paths': ['X7', 'X2', 'X1']}]\n"
     ]
    }
   ],
   "source": [
    "from pyrca.analyzers.ht import HT, HTConfig\n",
    "\n",
    "model = HT(config=HTConfig(graph=estimated_matrix))\n",
    "model.train(normal_data_df)\n",
    "\n",
    "results = model.find_root_causes(abnormal_data_df, \"X1\", True).to_list()\n",
    "print(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8e38e5ab",
   "metadata": {},
   "source": [
    "We are able to identify the root causes X18 and X2 using a hypothesis testing algorithm, despite the estimated graph not being entirely accurate."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
